2014-09-26 128 views
2

我有一个问题,那就是当我在我的web服务器上部署我的asp.net 4.0应用程序时,我无法写入App_Data文件夹。其实它有一个XML文件,我正在试图写入一些信息。我收到以下错误。ASP.NET访问被拒绝的路径,在Web服务器上

Access to the path 'C:\HostingSpaces\hosterind\mydomain.com\wwwroot\App_Data\ErrorLog.xml' is denied. 

我试图寻找每个角落的可能解决方案之前张贴在stackoverflow但我无法解决此问题。在互联网上搜索类似的问题(也是stackoverflow)我得出结论,我需要通过IIS处理它,因为它在互联网上被引用来通过IIS管理器授予对App_Data文件夹的权限。由于访问您的虚拟主机服务器的IIS管理器是不可能的,我认为人们指的是我的本地IIS服务器。所以,我从位置:C:\ Users \ DanComputer \ Documents \ Visual Studio 2010 \ WebSites \ MyWebProject复制了我在Visual Studio中开发的项目,并将其粘贴到C:\ inetpub \ wwwroot中。然后,我通过选择DefaultAppPool作为应用程序池来找到我的项目在IIS管理器中。我更改了我的App_Data文件夹权限,以允许完全控制IIS_IUSRS(DanComputer \ IISUSRS)。然后我复制我的App_Data文件夹到我的虚拟主机空间使用FTP软件,但它并没有解决我的问题。我尝试了许多事情,甚至改变了允许所有人完全控制的权限,但它没有工作,我仍然得到相同的错误。请帮忙吗?

+0

您有权访问服务器以运行控制台命令吗? – Dalorzo 2014-09-26 17:03:21

+0

我从来没有问过我的托管公司。实际上这是我开发的第一个应用程序,现在正在出现问题。我没有太多有关IIS和相关内容的知识。我怎么知道我的服务器是否允许运行一个控制台命令?我不确定托管公司可以允许这样做,但仍然欢迎如果你有解决我的问题的一些想法 – 2014-09-26 17:06:50

回答

2

您需要知道什么是您的应用程序的应用程序池的身份。您可以从IIS或控制台获取此信息。您的hosing公司可能有一个控制面板可以提供这些信息。

enter image description here

然后,你需要给权限的应用程序池标识帐户的名称将是相同的,或至少是非常相似的,你在IIS中所看到的:

enter image description here

因此,使用我上面的示例,我将不得不为本地服务或网络服务授予读/写我的app_data文件夹的权限。

+0

你能告诉我接下来我应该知道我的托管公司applicayio池后做什么? – 2014-09-26 17:21:04

+0

谢谢,听起来合乎逻辑。我做了一封电子邮件给我的托管公司,让我知道他们的IIS默认应用程序池。希望这会解决我的问题 – 2014-09-26 17:35:15