【问题标题】:Asp.NET: How to send files located in a shareAsp.NET:如何发送位于共享中的文件
【发布时间】:2019-09-13 13:12:34
【问题描述】:

我正在为我们的 Intranet 公司开发一个 ASP.NET (webforms) Web 应用程序。 我有一个网络共享/存储库,比如 Z:\MyRepository\ ,显然在 c:\inetpub\wwwroot 之外。

我需要从我的 Web 应用程序中“提供”这些文件。

我的问题是:

  1. 我需要向 Z:\MyRepository\ 添加哪些权限。 IIS_USR ?其他的 ?

  2. 如何发送文件?使用 Response.Transmit ?

谢谢

【问题讨论】:

  • IIS 限制了 GUEST 用户对文件的访问,因此您需要使用网络驱动器吗?如果文件是二进制文件或包含 html 特殊字符,则需要使用 HTTP FTP:docs.microsoft.com/en-us/dotnet/api/…
  • 1.如果它是一个网络共享,那么添加 IIS_USR 将毫无用处,因为这是一个特定于机器的组。最好的办法是为您的应用程序池使用域用户。当您通过网络联系时,您的应用程序将在该用户的上下文中运行。
  • 2.这个问题已经解决了文件下载问题:stackoverflow.com/questions/18477398/…
  • blog.lextudio.com/… IIS 并非在所有情况下都支持映射的驱动器。

标签: c# asp.net .net iis


【解决方案1】:

通常,运行您的应用程序的应用程序池用户将是需要访问文件共享的用户。

为了简化您的应用程序,您还可以在 IIS 中创建一个virtual directory 并将其映射到文件共享。这有很多优点,但主要是:

  • 它使从应用程序中引用文件变得更加简单。
  • 如果网络路径发生变化,您只需更新您的虚拟目录即可。
  • 您还可以为要使用的虚拟目录指定不同的用户。

【讨论】:

    猜你喜欢
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多