【问题标题】:IIS 7.5 Authorization Issue - Network share not accessibleIIS 7.5 授权问题 - 无法访问网络共享
【发布时间】:2018-06-19 16:08:10
【问题描述】:

我突然在访问 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);            
}

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

大多数 Google 页面都说,它将在 IIS 7.5 中的应用程序池标识下运行。 但我不知道我还需要修改什么。

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

【问题讨论】:

    标签: asp.net iis-7.5


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      尝试以下方法之一。

      创建一个网络驱动器,并使用它的驱动器号

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

      尝试谷歌并搜索“网络驱动映射”。你会发现很多结果。

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

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

      【讨论】:

      • 嗨..谢谢。但是驱动器映射不起作用。我在另一个网站上找到了解决方案,我在下面详细介绍了
      • 如果我们在应用程序池中使用经典管道模式会怎样。这对于阻止匿名访问阅读和下载 pdf 文件有什么作用?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-08
      • 1970-01-01
      • 2010-11-28
      • 2014-01-08
      • 2012-11-07
      • 1970-01-01
      相关资源
      最近更新 更多