通过运行 mvc Web 应用程序的 IIS 访问映射驱动器 asp.net
本文关键字:映射 访问 驱动器 asp net IIS 运行 mvc Web 应用程序 | 更新日期: 2023-09-27 18:34:50
我已经在虚拟机(Windows Server 2012 R2(内的IIS 8服务器上部署了一个 asp.net mvc Web应用程序。Azure 文件存储在此虚拟机 Windows Server 2012 R2 中映射为网络驱动器。现在,我的 asp.net mvc Web 应用程序需要通过 C# System.IO 代码读取此映射驱动器的文件和文件夹。默认情况下,不允许 IIS 访问映射的驱动器。
这就是 Web 应用程序抛出异常 System.IO 原因
"找不到指定的路径 Z:''">
.我也试图通过"''''{storage-name}.file.core.windows.net''{fileshare-name}
但仍然没有成功。
有人可以指导我进行正确的配置和设置,我应该在IIS和Web应用程序中执行这些配置和设置吗?
最后,我成功地通过IIS服务器访问了映射的网络驱动器。我执行了以下步骤。
- 在 VM 上创建新的用户帐户。
- 此新帐户的用户名将是存储帐户名称
- 此用户的密码将是以"=="结尾的存储帐户密钥
- 创建此新用户帐户后,我将此用户的帐户类型更改为管理员
- 转到">我的电脑">或"这台电脑">
- 在映射网络驱动器的帮助下连接网络驱动器..选项。
- 打开 IIS 管理器窗口,转到应用程序池
- 选择您的 Web 应用程序正在使用的应用程序池(在我的例子中是 DefaultAppPool,然后单击右侧窗格中的高级设置...。
- 使用新创建的用户帐户名和密码更改此应用程序池的标识。
- 将"加载用户配置文件"设置为 true。
- 单击"确定"保存更改。
- 单击右侧窗格中的"回收"链接以刷新选定的应用程序池。
- 现在选择您的 Web 应用程序,该应用程序位于默认我们站点下。
- 单击">基本设置..."以打开"编辑站点"对话框。
- 确保应用程序池名称正确。
- 单击">连接为...">按钮并选择"特定用户"单选按钮,然后使用此新创建的用户名(存储帐户名(和密码(存储帐户密钥(设置凭据。
就是这样。现在,您只需编写标准 C# IO 代码即可访问映射驱动器的目录和文件。下面是一个示例示例。
var allDirs = Directory.GetDirectories("''''<storageaccountname>.file.core.windows.net''<storagefileshare>");
ViewBag.Items = allDirs;
确保仅通过UNC路径格式访问文件和文件夹,就像我在上面的代码中所做的那样。