这是我试图去工作的设置。
Windows 7,安装在c:\ tfsprojects \ test \ test中的“ASP.NET Web应用程序”(为此testing向导创build的新的应用程序)的文件,打开并在Visual Studio 2010中生成。
运行在VMWare Workstation 8内的Windows Server 2003。
VMWare有一个映射,以便本地文件系统c:\ tfsprojects在虚拟机内显示为\ vmware-host \ Shared Folders \ tfsprojects
VM内部的IIS,设置为从\ vmware-host \ Shared Folders \ tfsprojects \ test运行80上的默认网站
问题是,当我访问http:// localhost / test (VM内部)时,出现以下错误:
[HttpException (0x80070001): Failed to start monitoring changes to '\\vmware-host\Shared Folders\tfsprojects\test\'.] System.Web.DirMonCompletion..ctor(DirectoryMonitor dirMon, String dir, Boolean watchSubtree, UInt32 notifyFilter) +139 System.Web.DirectoryMonitor.StartMonitoring() +42 System.Web.DirectoryMonitor.StartMonitoringFile(String file, FileChangeEventHandler <snip>
[HttpException(0x80004005):ASP.NET初始化错误] System.Web.HttpRuntime.FirstRequestInit(HttpContext上下文)+982 System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)+128
–
我已经设置了c:\ tfsprojects目录,对“everyone”具有完全权限,并明确为域匿名用户添加权限(并将IIS设置为在目录security选项卡下将该用户名用于匿名权限)。
–
有任何想法吗? 这一个让我完全难住。 由于各种原因,我似乎无法做到这一点。 高度赞赏任何帮助。
看起来无论这个设置使用什么(SMB?不是WS8用户…)将驱动器映射到vmware,实现一些文件系统API太不完整,IIS能够使用它。 build议您将活动文件系统保留在虚拟机中,SMB将其挂载到主机上。
一个技巧可能是禁用开发Web服务器的文件监视function。 通常情况下,ASP.NET会监视更改,并在出现更改时重新启动应用程序池。 有一个registry设置来禁用这个虽然。 这可能会导致启动过程中出现更多的描述性错误。
您可以将registry项FCNMode设置为1以禁用监视:
http://support.microsoft.com/kb/911272
HKLM \ SOFTWARE \微软\ ASP.NET \ FCNMode
或者在这里,如果在64位Windows上运行32位应用程序池:
HKLM \ SOFTWARE \ Wow6432Node \微软\ ASP.NET \ FCNMode
您可能需要运行SysInternal的进程监视器来确定哪些文件/文件夹被访问导致错误。 例如,它可能试图访问C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files,并且您的应用程序标识需要对该文件夹的权限。
如果不是文件系统权限,可能是由于.NET的代码访问安全(CAS)function。 它可能不知道如何使VMWare映射的资源。 您可能想尝试input位置的例外。 如果这不起作用,您可能需要尝试将SMB映射驱动器用于主机的networking地址,而不是使用VMWarenetworking。
CD /DC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 caspol.exe -m -ag 1 -url "file://\\vmware-host\*" FullTrust -exclusive on caspol.exe -m -ag 1 -url "file://L:/TFSProjects" FullTrust -exclusive on caspol.exe -m -ag 1 -url "http://localhost/*" FullTrust -exclusive on CD /DC:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727 caspol.exe -m -ag 1 -url "file://\\vmware-host\*" FullTrust -exclusive on caspol.exe -m -ag 1 -url "file://L:/TFSProjects" FullTrust -exclusive on caspol.exe -m -ag 1 -url "http://localhost/*" FullTrust -exclusive on CD /DC:\WINDOWS\Microsoft.NET\Framework\v4.0.30319 caspol.exe -m -ag 1 -url "file://\\vmware-host\*" FullTrust -exclusive on caspol.exe -m -ag 1 -url "file://L:/TFSProjects" FullTrust -exclusive on caspol.exe -m -ag 1 -url "http://localhost/*" FullTrust -exclusive on CD /DC:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319 caspol.exe -m -ag 1 -url "file://\\vmware-host\*" FullTrust -exclusive on caspol.exe -m -ag 1 -url "file://L:/TFSProjects" FullTrust -exclusive on caspol.exe -m -ag 1 -url "http://localhost/*" FullTrust -exclusive on REM display the exceptions caspol -lf