У меня возникли проблемы с функцией теневого копирования доменов приложений в сочетании с веб-сайтом ASP.NET, работающим под управлением IIS.Проблема заключается в том, что теневые скопированные файлы не могут быть прочитаны или выполнены пользователем IIS из-за недостаточных разрешений.
Я получаю следующее сообщение об ошибке при выполнении кода в новом домене приложений (через метод обратного вызова черезDoCallBack):
System.IO.FileLoadException: не удалось загрузить файл или сборку 'My.Namespace.AssemblyName, версия = 0.0.3.2231, Culture = нейтральный, PublicKeyToken = null' или одну из ее зависимостей.Доступ запрещен.
Журнал Fusion:
<i>Assembly manager loaded from: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
Running under executable c:\windows\system32\inetsrv\w3wp.exe
--- A detailed error log follows.
=== Pre-bind state information ===
LOG: User = NT AUTHORITY\NETWORK SERVICE
LOG: DisplayName = My.Namespace.AssemblyName, Version=0.0.3.2231, Culture=neutral, PublicKeyToken=null
(Fully-specified)
LOG: Appbase = file:///C:/Inetpub/wwwroot/Web Suite/Widgets
LOG: Initial PrivatePath = NULL
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: No application configuration file found.
LOG: Using host configuration file: \\?\C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet.config
LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Inetpub/wwwroot/Web Suite/Widgets/My.Namespace.AssemblyName.DLL.
ERR: Failed to complete setup of assembly (hr = 0x80070005). Probing terminated.
</i>
Что я уже сделал:
Я предоставил доступ к папке 'C: / Inetpub / wwwroot / Web Suite / Widgets'и разрешение на выполнение для пользователя «NETWORK SERVICE».
Когда я отключаю функцию теневого копирования, все идет хорошо.
Даже на моем локальном компьютере в Visual Studio 2008 он работает без проблем.
Предоставление всехфайлы (вместо самой папки) в папке Widgets разрешение на чтение и выполнение не решает проблему.
Я думал, что это связано с разрешениями для папки временных файлов ASP.NET:
C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ web suite
Эта папка, все ее подпапки и файлы в них имеют разрешения на чтение, чтение и выполнение для пользователя 'NETWORK SERVICE».Так что это тоже не проблема.
Короче говоря:
Почему мой сайт (работающий под IIS6) не может получить доступ к теневым копиям файлов нового домена приложений?