系统组件.Win32异常: 拒绝访问..... 错误

3
我想要在我们的网站上打开一个文档文件。为此,我编写了以下代码。
try
{
      Process proc = new Process();
      proc.StartInfo = new ProcessStartInfo(Server.MapPath("~/Quatation/PREMIUMQUOTATION1.doc"));
      proc.Start();
}
catch (WebException we)
{

}

在本地运行很好,但在Web服务器上运行时出现错误,如下所示:

System.ComponentModel.Win32Exception: 拒绝访问?

请给出建议,我该怎么办?


请确保您具有访问该特定文档的足够权限。 - Neel
你需要为该文档分配权限。 - Rahul
看这里,这可能是答案:System.ComponentModel.Win32Exception: Access is denied Error - slaesh
我需要做什么才能获得权限访问? - Dattatray deshmukh
@ rahul:如何为文档分配权限 - Dattatray deshmukh
显示剩余2条评论
8个回答

5
当我的.NET目标框架设置为4.5.2时,我遇到了这个问题。我通过将目标框架版本更改为4.5来解决它。要在Visual Studio 2015中执行此操作,请打开“解决方案资源管理器”,右键单击解决方案,然后单击“属性”。"Target Framework"应设置为".NET Framework 4.5"。此外,如果您之前使用的是除4.5以外的目标框架构建,则可能在web.config中有一个部分,这可能会导致构建时出错。只需删除此部分即可解决该问题。删除它不应该引起任何问题。
我写了一篇短文,在这里,其中包含了一些我尝试过但对我无效的其他方法,但它们可能适用于您。
还要查看这个Stack Overflow回答,它也帮助了许多遇到此错误的人!

2
在IIS管理中,选择“应用程序池”->“高级设置”->“身份”,将其更改为自定义帐户,并设置管理员用户,这样我的问题就解决了。

2

可能你的SQL服务器已经关闭,请在服务中检查并启动它。


1
看起来您还没有更改服务登录用户。您可以通过在服务控制管理器中右键单击服务并转到“登录”选项卡来完成此操作。 然后将用户添加为服务登录用户。
或者您也可以通过命令行进行操作:
sc config ServiceName obj= Domain\user password= pass

请注意obj=Domain\user之间的空格,这不是错别字,而是必需的。同样适用于password=

0

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


0

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

一旦保存了更改,错误就消失了...

我在Visual Studio 2017中使用dotNet Framework 4.5,在MVC项目中工作时遇到了这个错误...


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

这是因为你正在本地使用你的账户运行程序,该账户可能具有管理员权限,因此不会抱怨访问权限。但是当部署到服务器上时,程序将在IIS用户下运行,该用户没有相应的权限。 - user2930590

0
我正在使用 .Net 4.5.2 和 IIS 8.5.9。 在 IIS 管理器中,进入应用程序池 -> 高级设置 -> 身份验证,将 ApplicationPoolIdentity 更改为自定义帐户,并设置管理员用户。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接