在VirtualBox VM中使用共享文件夹的IIS应用程序

在VirtualBox VM中使用共享文件夹的IIS应用程序,iis,virtualbox,iis-express,Iis,Virtualbox,Iis Express,我有一个运行WindowsServer2008R2的VirtualBox虚拟机。服务器配置为域控制器 我在主机上的web应用程序上有源代码。我与来宾VM共享了一个包含源代码的文件夹。我在来宾计算机上配置了一个IIS应用程序,并将其指向共享(\VBOXSVR\code) 运行应用程序时,我收到以下消息: 模块:IIS Web核心 通知:BeginRequest 处理程序:尚未确定 错误代码:0x80070001 配置错误:无法读取配置文件 配置文件:\?\UNC\VBOXSVR\code\web.

我有一个运行WindowsServer2008R2的VirtualBox虚拟机。服务器配置为域控制器

我在主机上的web应用程序上有源代码。我与来宾VM共享了一个包含源代码的文件夹。我在来宾计算机上配置了一个IIS应用程序,并将其指向共享(\VBOXSVR\code)

运行应用程序时,我收到以下消息:

模块:IIS Web核心
通知:BeginRequest
处理程序:尚未确定
错误代码:0x80070001
配置错误:无法读取配置文件
配置文件:\?\UNC\VBOXSVR\code\web.Config


我已验证运行应用程序池的用户帐户可以访问共享。有没有办法解决这个问题

我在为Windows 2012 R2和IIS设置用于开发目的的漫游框时遇到了一个非常类似的问题。根据我记忆中的情况,我可以使用以下方法作为解决方案,但我不希望在生产环境中实现这些方法:

  • 使C:\vagrant成为网络共享,并将权限设置为 运行IIS的用户可以访问
    \\localhost\vagrant
  • 将站点的webroot设置为网络共享
    \\localhost\vagrant
  • 理论上,以下几点可能适用于您的情况:

  • 创建到网络共享的符号链接,即:
    mklink/j“\\VBOXSVR\code”C:\code\
  • 使C:\code成为IIS可访问的网络共享,
    \\localhost\code
  • 确保运行IIS的用户具有网络共享的权限
  • 将IIS中站点的webroot设置为网络共享,
    \\localhost\code
  • (可选)我在localhost的主机文件(C:\Windows\System32\drivers\etc\host)中添加了一个条目。这似乎有助于提高性能,但这并不是必须的


    希望这将为您指明正确的方向。

    Virtualbox在主机和来宾之间共享文件夹的方式似乎存在问题。正如我在使用Vagrant设置进行此操作时发现的,如果您在主机上手动创建UNC共享,请连接到来宾上的该共享,并将IIS指向它,一切都会顺利进行

    请注意,如果使用应用程序池,则应确保分配给池的用户可以访问共享

    如果您想了解两个Powershell脚本是什么样子的,以便自动化该过程,请查看的脚本目录


    或者,您可以使用
    rsync
    类型,它的优点是性能更好。你可以用Packer()创建一个本地Windows虚拟机。

    在这个问题上花了几个小时后,我终于成功地使它工作了。为来宾用户配置应用程序池标识。如果你这样做,一切都会按预期进行


    我有一个设置,其中主机操作系统有代码,一个配置了IIS的virtualbox vm从共享文件夹(vbox共享文件夹)中提供该代码。一切正常。

    嗨,你解决了这个问题吗?同样的问题,我以前也遇到过,不知道现在发生了什么变化,解决了吗?太棒了,谢谢你——这解决了一个长期以来令人沮丧的流浪问题。然而,我注意到这种方法的性能非常慢。想知道您是否有任何见解,或者在使用此方法时是否找到了改进方法?例如,加载对静态HTML文件的基本请求需要1-2秒。甚至还没有尝试过ASP.Net网站。遗憾的是,这是一个解决办法,所以它没有最好的性能。我确实记得一开始有性能问题。如果我没记错的话,我做了以下事情:我增加了vm规格,使其具有3GB内存和4个处理器,调整了应用程序池,使其在一小时后循环使用,在主机文件中添加了localhost条目,并编辑了注册表per,尽管它适用于IIS 6.0。这对我有效,但我必须使用/d开关运行mklink命令,不是/j。这是内置的“来宾”帐户吗?我安装的Windows Server 2008 R2没有“来宾”帐户。所以我想知道,如果我创建了一个,它是否会起作用?@Radu目前确实存在同样的问题,你有什么问题。请您解释一下,“为来宾用户配置您的应用程序池标识”是什么意思?我
    打开了IIS管理器->我的系统->应用程序池
    ,在那里找到了我的新设置网站。鼠标右键单击会显示一个上下文菜单,其中包含一些可能相关的点:
    设置应用程序池默认值…
    基本设置…
    高级设置…
    现在如何为来宾用户配置应用程序池标识?谢谢。@jonathanconway你明白了吗?你能澄清一下你的答案吗?因为你确实不清楚你到底做了什么?