通过运行asp.net mvc Web应用程序的IIS访问映射驱动器

时间:2016-02-15 15:05:00

标签: c# asp.net asp.net-mvc azure iis

我在虚拟机(Windows server 2012 R2)中的IIS 8服务器上部署了一个asp.net mvc Web应用程序。 在此虚拟机Windows Server 2012 R2中,azure文件存储被映射为网络驱动器。 现在我的asp.net mvc Web应用程序需要通过C#System.IO代码读取此映射驱动器的文件和文件夹。默认情况下,IIS不允许访问映射驱动器。

这就是Web应用程序抛出System.IO异常

的原因
  

"找不到指定的路径Z:\"

。我也试图通过"\\\\{storage-name}.file.core.windows.net\\{fileshare-name} 但仍然没有成功。

有人可以指导我使用IIS和Web应用程序中应该做的正确配置和设置吗?

1 个答案:

答案 0 :(得分:8)

最后,我成功通过IIS服务器访问映射的网络驱动器。 我执行了以下步骤。

  • 在VM上创建新用户帐户。
  • 此新帐户的用户名将是存储帐户名称
  • 此用户的密码为存储帐户密钥,以“==”结尾
  • 创建此新用户帐户后,我将此用户的帐户类型更改为管理员
  • 转到我的电脑此电脑
  • 借助映射网络驱动器选项附加网络驱动器。
  • 打开IIS管理器窗口,转到应用程序池
  • 选择Web应用程序正在使用的应用程序池(在我的情况下,它是 DefaultAppPool ,然后从右侧窗格中单击高级设置... 。< / LI>
  • 使用新创建的用户帐户名和密码更改此应用程序池的标识
  • 加载用户个人资料设置为 true
  • 单击“确定”保存更改。
  • 点击右侧窗格中的回收链接以刷新选定的应用程序池。
  • 现在选择默认我们网站下的网络应用程序。
  • 点击基本设置... 以打开修改网站对话框。
  • 确保应用程序池名称正确无误。
  • 点击连接为... 按钮并选择特定用户单选按钮,然后使用此新创建的用户名(存储帐户名称)和密码设置凭据(存储帐户密钥)。

就是这样。现在您可以简单地编写标准C#IO代码来访问映射驱动器的目录和文件。这是一个示例。

var allDirs = Directory.GetDirectories("\\\\<storageaccountname>.file.core.windows.net\\<storagefileshare>");
ViewBag.Items = allDirs;

确保您只能通过UNC路径格式访问文件和文件夹,就像我在上面的代码中所做的那样。