通过运行asp.net mvc web应用程序的IIS访问Map驱动器

bqujaahr  于 9个月前  发布在  .NET
关注(0)|答案(1)|浏览(118)

我在asp.net虚拟机(Windows Server 2012 R2)内的IIS 8服务器上部署了一个www.example.com mvc Web应用程序。Azure文件存储在此虚拟机Windows Server 2012 R2中Map为网络驱动器。现在我的ASP.NET mvc web应用程序需要通过C#System.IO代码读取这个Map驱动器的文件和文件夹。默认情况下,不允许IIS访问Map的驱动器。
这就是Web应用程序抛出System.IO异常的原因
“找不到指定的路径Z:\”
.我也尝试通过"\\\\{storage-name}.file.core.windows.net\\{fileshare-name},但仍然没有成功.
有人可以指导我正确的配置和设置,我应该做的IIS和Web应用程序?

z9smfwbn

z9smfwbn1#

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

  • 在VM上创建新用户帐户。
  • 此新帐户的用户名将为存储帐户名称
  • 此用户的密码为存储帐户密钥,以“==”结尾
  • 创建此新用户帐户后,我将此用户的帐户类型更改为管理员
  • 转到我的电脑此电脑
  • 在**Map网络驱动器..**选项的帮助下连接网络驱动器。
  • 打开IIS管理器窗口,进入应用程序目录
  • 选择您的Web应用程序正在使用的应用程序池(在我的示例中是 DefaultAppPool,然后单击右侧窗格中的高级设置...
  • 使用新创建的用户帐户名和密码更改此应用程序池的身份
  • 加载用户配置文件设置为true
  • 单击“确定”以保存更改。
  • 单击右侧窗格中的回收链接以刷新所选应用程序池。
  • 现在选择您的Web应用程序,该应用程序位于默认我们的网站下。
  • 点击【基本设置】,打开【编辑站点】对话框。
  • 确保应用程序池名称正确。
  • 单击连接为...按钮并选择特定用户单选按钮,然后使用此新创建的用户名(存储帐户名)和密码(存储帐户密钥)设置凭据。

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

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

请确保您访问的文件和文件夹的路径格式只,就像我在上面的代码。

相关问题