Назад | Перейти на главную страницу

Попытка запустить IIS в виртуальной машине, а Visual Studio - изначально, с файлами в собственной файловой системе

вот установка, я пытаюсь пойти на работу.

  1. Windows 7 с файлами для «веб-приложения ASP.NET» (новое приложение, созданное мастером для этого теста), установленного в c: \ tfsprojects \ test \ test, этот проект легко открывается и строится в Visual Studio 2010.

  2. Windows Server 2003, работающая внутри VMWare Workstation 8.

  3. VMWare имеет сопоставление, так что собственная файловая система c: \ tfsprojects отображается как \ vmware-host \ Shared Folders \ tfsprojects внутри виртуальной машины.

  4. IIS внутри виртуальной машины, настроенный для запуска веб-сайта по умолчанию на 80 из \ vmware-host \ Shared Folders \ tfsprojects \ test

Проблема в том, что когда я получаю доступ http: // локальный / тест (внутри ВМ) я получаю следующую ошибку:

[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, чтобы иметь полные разрешения для «всех», а также явно добавил разрешения для анонимного пользователя домена (и настроил IIS на использование этого имени пользователя для анонимных разрешений на вкладке безопасности каталога).

-

Любые идеи? Это меня полностью поставило в тупик. По разным причинам я не могу сделать это по-другому. Очень признателен за любую помощь.

Один из приемов может заключаться в отключении функций мониторинга файлов веб-сервера разработки. Обычно ASP.NET отслеживает изменения и перезапускает пул приложений, если что-то меняется. Однако есть параметр реестра, чтобы отключить это. Это может привести к более описательной ошибке в процессе запуска.

Вы можете установить для ключа реестра FCNMode значение 1, чтобы отключить мониторинг:

http://support.microsoft.com/kb/911272

HKLM \ Software \ Microsoft \ ASP.NET \ FCNMode

или здесь, если запущен пул 32-битных приложений в 64-битной Windows:

HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ ASP.NET \ FCNMode

Вы можете запустить SysInternal's Process Monitor, чтобы определить, к каким файлам / папкам осуществляется доступ, что приводит к ошибке. Например, он может пытаться получить доступ к C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files, и вашему удостоверению приложения потребуются разрешения для этой папки.

Если это не разрешения файловой системы, это может быть связано с функциями безопасности доступа кода (CAS) .NET. Вероятно, он не знает, что делать с отображенными ресурсами VMWare. Вы можете попробовать ввести исключение для местоположений. Если это не сработает, вы можете попробовать использовать подключенный SMB диск к сетевому адресу хоста вместо использования сети VMWare.

CD /D C:\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 /D C:\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 /D C:\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 /D C:\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 

Похоже, что все, что использует эта установка (SMB? Не пользователь WS8 ...) для сопоставления диска с vmware, слишком неполно реализует некоторые API файловой системы, чтобы IIS мог с ними работать. Предлагаем сохранить живую файловую систему на виртуальной машине, а SMB смонтировать ее на хосте.