Невозможно загрузить файл или сборку - PullRequest
4 голосов
/ 21 января 2011

Я получаю эту ошибку ниже, когда я добавляю файл Enterprise library 5.0 MS.Practices.EnterpriseLibrary.ExceptionHandling.dll для моего приложения wcf.

Произошла ошибка при создании обработчика раздела конфигурации для обработки исключений: не удалось загрузить файл или сборку 'Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, версия = 2.0.0.0, культура = нейтральная, PublicKeyToken = null' или одна из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку.

 <exceptionHandling>
<exceptionPolicies>
  <add name="Global Policy">
    <exceptionTypes>
      <add name="Exception" type="System.Exception, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" postHandlingAction="None">
        <exceptionHandlers>
          <add name="Wrap Handler" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.WrapHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling" exceptionMessage="Global Message." wrapExceptionType="ExceptionHandlingQuickStart.BusinessLayer.BusinessLayerException, ExceptionHandlingQuickStart.BusinessLayer" /> 
          <add name="Custom Handler" type="AppMessageExceptionHandler, ExceptionLibraryForWCF"/>
        </exceptionHandlers>
      </add>
    </exceptionTypes>
  </add>
  <add name="Handle and Resume Policy">
    <exceptionTypes>
      <add name="Exception" type="System.Exception, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" postHandlingAction="None">
        <exceptionHandlers/>
      </add>
    </exceptionTypes>
  </add>
  <add name="Propagate Policy">
    <exceptionTypes>
      <add name="Exception" type="System.Exception, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" postHandlingAction="NotifyRethrow">
        <exceptionHandlers/>
      </add>
    </exceptionTypes>
  </add>
  <add name="Replace Policy">
    <exceptionTypes>
      <add name="SecurityException" type="System.Security.SecurityException, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" postHandlingAction="ThrowNewException">
        <exceptionHandlers>
          <add name="Replace Handler" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.ReplaceHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" exceptionMessage="Replaced Exception: User is not authorized to peform the requested action." replaceExceptionType="System.ApplicationException, mscorlib"/>
        </exceptionHandlers>
      </add>
    </exceptionTypes>
  </add>
  <add name="Wrap Policy">
    <exceptionTypes>
      <add name="DBConcurrencyException" type="System.Data.DBConcurrencyException, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" postHandlingAction="ThrowNewException">
        <exceptionHandlers>
          <!--<add name="Wrap Handler" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.WrapHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling" exceptionMessage="Wrapped Exception: A recoverable error occurred while attempting to access the database." wrapExceptionType="ExceptionHandlingQuickStart.BusinessLayer.BusinessLayerException, ExceptionHandlingQuickStart.BusinessLayer" /> -->
        </exceptionHandlers>
      </add>
    </exceptionTypes>
  </add>
</exceptionPolicies>

Ниже мое объявление web.config для моей обработки исключений ->

Ответы [ 2 ]

3 голосов
/ 21 января 2011

Ваш web.config на самом деле не в посте.

В любом случае, у вас есть ссылка на Entlib 2.0 в вашем конфигурационном файле. Вам нужно обновить, чтобы указать номер версии Entlib 5 и токен открытого ключа. Вероятно, это в вашем элементе, но если он там есть, я не удивлюсь, если у остальной части вашего файла тоже будет неправильная версия #.

[уточнение по поводу дальнейших размышлений]

На самом деле, основываясь на сообщении об ошибке, есть еще одна возможность - среда выполнения находит сборку 2.0 вместо сборки 5.0, когда она загружается. Дважды проверьте все ссылки на сборки и проверьте каталог bin - убедитесь, что в нем есть правильная сборка.

Вы также можете попробовать запустить утилиту fuslogvw на веб-сервере - она ​​сообщит вам, какие сборки пытались загрузить среда выполнения и где их искали.

0 голосов
/ 19 июля 2011

У меня была похожая проблема, вызванная контролем источника.Я зарегистрировал старую копию файла проекта после того, как коллега обновил проект.Я просто нашел проект, который ссылался на ссылку на сборку / проект по ошибке, удалил ссылку, заново добавил ссылку и пересобрал решение.лото.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...