Почему я получаю Систему. IO.FileLoadException: Разве загрузка не могла зарегистрировать или блок, об один раз в неделю на моем Веб-сайте ASP.NET?

У меня есть довольно простой внутренний Веб-сайт ASP.NET, который имеет проблемы, загружающие Microsoft. Методы. EnterpriseLibrary. Данные dll об один раз в неделю. Вот Сообщение об исключении:

System.IO.FileLoadException: Could not load file or assembly 'Microsoft.Practices.EnterpriseLibrary.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Access is denied.
File name: 'Microsoft.Practices.EnterpriseLibrary.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null'
   at foobar.Intranet.Logic.Data.UserDB.SelectByUserName(String userName)
   at foobar.Intranet.Logic.Info.User.ValidateUser(String userName) in F:\Development\foobar\foobar\foobar.Intranet.Logic\Info\User.cs:line 130
   at Login.ValidateUser(String username, String password) in e:\foobar\foobar.Intranet\Login.aspx.cs:line 32

=== Pre-bind state information ===
LOG: User = Unknown
LOG: DisplayName = Microsoft.Practices.EnterpriseLibrary.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null
 (Fully-specified)
LOG: Appbase = file:///E:/foobar/foobar.Intranet/
LOG: Initial PrivatePath = E:\foobar\foobar.Intranet\bin Calling assembly : foobar.Intranet.Logic, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: E:\foobar\foobar.Intranet\web.config
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:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/foobar.intranet/668896d8/82d7e51c/Microsoft.Practices.EnterpriseLibrary.Data.DLL.
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/foobar.intranet/668896d8/82d7e51c/Microsoft.Practices.EnterpriseLibrary.Data/Microsoft.Practices.EnterpriseLibrary.Data.DLL.
LOG: Attempting download of new URL file:///E:/foobar/foobar.Intranet/bin/Microsoft.Practices.EnterpriseLibrary.Data.DLL.
ERR: Failed to complete setup of assembly (hr = 0x80070005). Probing terminated.

Знаменитые вещи:

  • Простой Сброс IIS устраняет проблему.
  • У нас был тот же код, работающий на единственном веб-сервере без проблем. Мы затем переместили сайт в два новых, сбалансированная загрузка (использование липких сессий) веб-серверы (все три Windows Server 2003 R2 Standard Edition SP1). Теперь каждая загрузка балансировалась, веб-серверы выдают это исключение об один раз в неделю просто внезапно.
    • Единственное существенное различие, о котором я могу думать, я установил 4,0 платформы.NET на сбалансированных серверах загрузки. Веб-сайт все еще работает в соответствии с ASP.NET 2.0, таким образом, я не вижу, как это было бы проблемой
  • Я настроил сервис индексации для не поиска папки "Temporary ASP.NET Files", но это не помогло.
  • Мы используем Microsoft. Методы. EnterpriseLibrary. Данные dll везде на нашем сайте. Почти каждая страница использует нашу логику dll, который в свою очередь использует EnterpriseLibrary dlls.
  • В то время как ошибки, где, происходя однажды, я даже надеялся видеть, какие процессы блокировали dll в папке "Temporary ASP.NET Files", и это несколько не отличалось, чем блокировки на сервере, который хорошо работал.
  • После того как ошибка запускается, это ошибки каждый раз, пока iisreset не выполняется

Любое понимание, которое любой мог предложить, будет очень цениться. Сообщите мне, пропустил ли я что-то.

Спасибо!

6
задан Daryl 1 July 2010 в 17:49
поделиться

1 ответ

Взгляните на Средство просмотра журнала привязки сборки . Это может указать вам правильное направление.

Я быстро просмотрел другие ответы SO, и один человек предположил, что приложение могло быть разработано на основе подписанной версии DLL, но рабочая среда выполнения имеет доступ только к неподписанной версии. Похоже, ваша продукция загружает неподписанную сборку ( PublicKeyToken = null ).

3
ответ дан 17 December 2019 в 18:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: