【问题标题】:System.ComponentModel.Win32Exception: Access is denied..... ErrorSystem.ComponentModel.Win32Exception:访问被拒绝.....错误
【发布时间】:2014-08-21 05:57:57
【问题描述】:

我想在我们的网站上打开一个文档文件。为此,我编写了以下代码。

try
{
      Process proc = new Process();
      proc.StartInfo = new ProcessStartInfo(Server.MapPath("~/Quatation/PREMIUMQUOTATION1.doc"));
      proc.Start();
}
catch (WebException we)
{

}

它在本地运行得很好,但是 web 服务器上的 web 它给了我一个类似的错误

System.ComponentModel.Win32Exception:访问被拒绝?

请建议,我该怎么办?

【问题讨论】:

  • 确保您有足够的权限访问该特定文档
  • 您需要为文档分配权限。
  • 看看这里,它可能的答案:[System.ComponentModel.Win32Exception: Access is denied Error][1] [1]: stackoverflow.com/questions/14194146/…
  • 我应该怎么做才能获得权限
  • @rahul :- 如何为文档分配权限

标签: c#


【解决方案1】:

当我的 .NET Target Framework 设置为 4.5.2 时,我遇到了这个问题。我通过将目标框架版本更改为 4.5 来修复它。要使用 Visual Studio 2015 执行此操作,请打开解决方案资源管理器,右键单击您的解决方案,然后单击属性。 “目标框架”应设置为“.NET Framework 4.5”。此外,如果您之前使用 4.5 以外的目标框架构建,您的 web.config 中可能有一个<compiler> 部分,这可能会在您构建时引发错误。只需删除此部分即可解决问题。删除它应该不会导致任何问题。

我写了一篇关于这个 here 的短文,其中还有一些其他的东西可以尝试,这些东西对我没有用,但可能对你有用。

还可以查看This Stack Overflow answer,它也帮助许多人解决了这个错误!

【讨论】:

    【解决方案2】:

    可能是您的 SQL 服务器已关闭 在服务中检查并启动它

    【讨论】:

      【解决方案3】:

      听起来您没有更改服务登录用户。您可以通过右键单击服务并转到登录选项卡从服务控制管理器中执行此操作。 然后将用户添加为服务登录用户

      或者您可以从命令行执行:

      sc config ServiceName obj= Domain\user password= pass
      

      注意obj=Domain\user 之间的空格,这不是拼写错误。这是必需的。 password= 也一样。

      【讨论】:

        【解决方案4】:

        转到 Windows 资源管理器并右键单击文件夹“~/Quatation/”。选择属性并选择安全选项卡以授予权限。如果您运行 Web 应用程序的应用程序池使用域帐户,则您需要授予该特定域帐户权限。

        【讨论】:

        • 这是因为您在本地运行在您的帐户下,可能具有管理员访问权限,因此不会抱怨访问权限。当部署在服务器上时,它将在没有权限的 IIS 用户下运行。
        【解决方案5】:

        我在从本地 IIS 运行我的网站时遇到了同样的问题,在花了一些时间阅读项目属性后,发现对项目属性的某些更改没有保存...

        保存后,错误就消失了……

        我在 Visual Studio 2017 中使用 dotNet 框架 4.5 在 MVC 项目中工作时遇到此错误...

        【讨论】:

          【解决方案6】:

          我的问题用这个解决了

          在 IIS 管理->池应用程序->高级设置->身份 更改为自定义帐户并设置管理员用户

          【讨论】:

            【解决方案7】:

            如果您遇到此异常,则可能您没有系统的管理权限,因此请与您的管理员联系并询问权限。如果您确实有管理员权限,请打开您的 IDE(例如以管理员身份使用 Visual Studio)。如果您尝试访问 32 位配置系统的进程但您的系统具有 64 位配置,您也可能会遇到此异常。

            【讨论】:

              【解决方案8】:

              我正在使用 .Net 4.5.2 和 IIS 8.5.9

              在 IIS 管理->池应用程序->高级设置->身份更改 ApplicationPoolIdentity 为自定义帐户并设置管理员用户

              【讨论】:

                猜你喜欢
                • 2012-12-21
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多