2009-08-02 201 views
5

我有一个ASP.NET应用程序,它尝试在运行时在Web服务器上写入文件。在我的开发环境中,这是有效的。然而,当我把它部署到生产服务器,我执行的代码,我收到一条错误:ASP.NET +访问路径被拒绝

"Access to the path 'C:\Inetpub\wwwroot\MyWebApp\DirToWriteTo\' is denied." 

我的生产服务器是一个Window Server 2003的计算机。 Web应用程序设置为允许通过IUSR_TEMPLATE帐户进行匿名访问。

我在做什么错?

谢谢!

回答

1

最可能的问题是您的匿名用户不具有对该位置的写入权限。

我会做的是创建一个web.config条目,您想要写入的位置并使用该配置键作为您的可写目录。如果需要,这将允许您为生产服务器和开发机器分别进行配置。

接下来,只是给在配置中定义的用户IUSER_TEMPLATE目录写权限,或作为Thorarin的网络服务,在这种情况下,你应该建立身份模拟在你的web.config说这样就可以了指定用户(除非您通过应用程序池配置用户)。这应该解决问题。

+1

仅当`Web.config`在其``部分有一个`时。否则,将使用为应用程序池设置的标识。默认情况下,这是*网络服务*(其访问非常有限) – Thorarin 2009-08-02 18:35:11

1

如果您有Windows 2008或以上,试着给写权限IIS_IUSRS

(网络服务也过去为我工作。从我读here,它依赖于服务器操作系统上。)

enter image description here

0

在我的情况下,Visual Studio 2015年改变现有项目的IIS AppPool用户默认为DefaultAppPool,它给了我权限错误,配置错误,角色提供者错误和空引用错误。发现这个并将其更改回到文件夹权限设置为的应用程序池后,事情又开始工作。