授予 IIS Express 访问 VMWare 中的网络驱动器的权限

Posted

技术标签:

【中文标题】授予 IIS Express 访问 VMWare 中的网络驱动器的权限【英文标题】:Grant IIS Express permission to access network drive in VMWare 【发布时间】:2015-04-14 02:58:34 【问题描述】:

我在 VMWare 中有一个 Windows 7 虚拟机,我用它来开发带有默认 IIS Express 服务器的 ASP.NET MVC 5 Web 应用程序。我喜欢将我的项目保存在外部硬盘驱动器上,我可以通过共享文件夹/网络驱动器在虚拟机中访问它。但是,当我运行我的应用程序时,IIS Express 无法访问我在项目目录中的 web.config 文件。它在正确的文件夹中查找,所以我很确定这是一个权限问题。如何授予 IIS Express 文件访问我网络驱动器上文件的权限?

我尝试过的事情

以管理员身份运行 Visual Studio 将 iisexpress.exe 设置为始终以管理员身份运行 查看 applicationhost.config 文件 尝试在网络驱动器上设置写入权限(右键单击驱动器并转到属性,但没有可用的“安全”选项卡) 我在寻找解决方案的几个小时内尝试过的其他一些事情我不记得了

我希望避免的已知最后手段

将项目文件从外部硬盘复制到虚拟机的存储空间,反之亦然

在完整的 IIS 服务器上运行项目

其他须知

使用 Visual Studio 2013 和 MVC 5

使用 IIS Express 7.5

VMWare 工作站 11

虚拟机也在外置硬盘上,所以无法将usb连接到guest,需要通过共享文件夹访问硬盘的其余部分(虽然有疑问,可能是分区硬盘驱动器会解决这个问题吗?)

来宾操作系统是 Windows 7 Professional

主机操作系统是 Debian Jessie RC1

外部硬盘被格式化为 NTFS,尽管它在网络驱动器上显示为 HGFS

我可以读写网络驱动器上的文件,只是 IIS Express 有问题

【问题讨论】:

程序没有权限,用户有。如果运行 IIS Express 的用户帐户(通常是您自己的)可以通过资源管理器访问文件,那么这不是权限问题。 【参考方案1】:

我刚刚遇到了类似的问题,我发现当您将 IIS 中的物理路径指定为映射驱动器时,例如Z:\shared-folder IIS 因 HTTP 500 错误而失败。

但是,您是否像这样指定路径:\\vmware-host\Shared Folders\shared-folder 然后突然它可以工作并且应用程序具有写入文件的所有权限。

这适用于 IIS 和 IISExpress。

【讨论】:

【参考方案2】:

VMware/VirtualBox 在客户机和主机之间的共享文件夹是一种使用 Windows 的映射驱动器功能。但是,IIS 和 IIS Express 都不支持映射驱动器。如果可能,请使用同步工具,例如 Dropbox,或简单地使用 Git 在两者之间共享位。

【讨论】:

看起来就是这样。感谢您的回答 @GarrettSHol***,如果对您有帮助,请接受答案。 点对点同步工具,例如 Resilio Sync,应该(理论上)比 DropBox 快。 更新:我已经将 Resilio Sync 应用到了这个问题上,而且效果非常好!我现在可以在 MacOS 中的常规文件夹中工作、提交和推送,并且更改会自动同步到 VM 上的文件夹,在那里可以使用 MSBuild 构建它们并由 IIS 提供服务。

以上是关于授予 IIS Express 访问 VMWare 中的网络驱动器的权限的主要内容,如果未能解决你的问题,请参考以下文章

授予 iis 应用程序对系统文件夹的权限

配置IIS Express,允许别的机器访问

配置IIS Express,远程访问调试

IIS小技巧将IIS Express改成可以通过ip地址访问

IIS Express允许外部访问(外部调试)

如何在 IIS 中授予 Web api 应用程序写入权限?