2011-01-20 6 views
4

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

Ошибка создания раздела конфигурации обработчика для exceptionHandling: Не удалось загрузить файл или сборку «Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version = 2.0.0.0, культура = нейтральной, PublicKeyToken = нуль» или один из его зависимостей. Определение манифеста размещенной сборки не соответствует ссылке на сборку.

<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 заявление для моей обработки исключения ->

ответ

3

Ваш web.config на самом деле не находится в сообщении.

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

[обновление дальнейшего отражения]

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

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

+0

Существует только версия 5.0.414.0, указанная в моем web.config не 2.0.0.0. – user583754

+0

см. Раздел web.config выше – user583754

+0

Что входит в элемент ?Вероятно, это проблема. –

0

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

Смежные вопросы