IIS 7.5授权问题 - 无法访问网络共享

时间:2012-07-05 16:13:18

标签: asp.net iis-7.5

我突然在ASP.NET应用程序中访问文件时遇到了麻烦。 我无法访问位于共享上的文件(与Web服务器不同的服务器)。

说, 我的开发机器是“A” 我有要从服务器“B”访问的文件。

当我在asp.net中编写代码时,它在调试模式下工作正常。但是,当我部署到IIS 7.5时,我收到了未经授权的异常。

一段代码:

protected void Button1_Click(object sender, EventArgs e)
{           
    string filepath = @"\\ServerB\MyDocs\{0}"; //Here MYDocs folder is a shared folder in ServerB
    string filename = "Resume.pdf";

    string fileFullName = String.Format(filepath,filename);
    Response.TransmitFile(fileFullName);            
}

当我在调试模式下运行时,pdf文档在IE中打开,但在部署时则不会。

大多数Google网页都说,它会在IIS 7.5中的应用程序池标识下运行。 但我无法弄清楚我还需要修改什么。

注意:我正在匿名身份验证下运行 - >应用程序池标识

2 个答案:

答案 0 :(得分:1)

我找到了身份验证问题的解决方案。

问题是我的网络服务器是Windows 2008 R2,文件共享是在Windows 2003服务器中。 使用“IIS AppPool \ DefaultAppPool”标识运行的应用程序。但是此用户在Windows 2003 Server中不可用。

我将应用程序池的标识更改为“网络服务”,并将权限授予2003服务器中的“NetworkService”用户。 现在我可以打开文件应用程序了。

我在此网站中找到了这个有用的信息:http://www.element-it.com/OnlineHelpHTTPCommander/Windows/ntfs.html

答案 1 :(得分:0)

尝试以下方法之一。

创建网络驱动器,并使用其驱动器号

string filepath = @"Z:\{0}";

尝试使用Google搜索“网络直播映射”。你会发现很多结果。

或者您可以为运行应用程序池的用户授予访问权限。

并检查您是否使用经典模式的应用程序池。