我有一台运行Windows Server 2008 R2的VirtualBox VM。服务器配置为域控制器。
我在主机上的Web应用程序上获得了源代码。我将一个文件夹共享到包含源代码的来宾VM。我在Guest计算机上配置了一个IIS应用程序,并将其指向共享(\ VBOXSVR \ code)。
当我运行应用程序时,收到以下消息:
模块:IIS Web Core
通知:BeginRequest
处理程序:尚未确定
错误代码:0x80070001
配置错误:无法读取配置文件
配置文件:\?\ UNC \ VBOXSVR \ code \ web.config
我已经验证了应用程序池正在运行的用户帐户可以访问共享。有想法该怎么解决这个吗?
答案 0 :(得分:8)
在为带有IIS的Windows 2012 R2设置用于开发目的的流浪盒时,我遇到了类似的问题。根据我的记忆,我能够使用以下作为解决方法,但不是我想在生产环境中实现的东西:
\\localhost\vagrant
。\\localhost\vagrant
理论上,以下内容可能适用于您的情况:
mklink /j "\\VBOXSVR\code" C:\code\
\\localhost\code
\\localhost\code
(可选)我在localhost的主机文件(C:\ Windows \ System32 \ drivers \ etc \ host)中添加了一个条目。这似乎可以提高性能,但它没有必要。
希望这会指出你正确的方向。
答案 1 :(得分:1)
Virtualbox在Host和Guest之间共享文件夹的方式似乎存在问题。正如我在使用Vagrant设置时所发现的那样,如果您在主机上手动创建UNC共享,请连接到Guest上的该共享并指向IIS上的内容顺利进行。
请注意,如果您使用的是应用程序池,则应确保分配给池的用户可以访问该共享。
如果您想查看几个Powershell脚本的自动化过程,请查看https://github.com/mefellows/vagrant-smb-plugin的脚本目录。
或者,您可以使用rsync
synced-folder类型,它具有更好的性能优势。您可以使用Packer(example templates)创建本地Windows VM。
答案 2 :(得分:-2)
在这个问题上花了几个小时后,我终于成功了。将应用程序池标识配置给Guest用户。如果你这样做,一切都会按预期工作。
我有一个设置,其中主机操作系统具有代码,并且配置了IIS的虚拟机vm从共享文件夹(vbox共享文件夹)提供该代码。一切都按预期工作。