WCF не может загрузить расширение пользовательского поведения из сборки с строгим именем - PullRequest
0 голосов
/ 20 июля 2011

У меня есть пользовательское расширение поведения, которое я использую в моем клиентском app.config

<extensions>
  <behaviorExtensions>
    <add name="consoleMessageTracing" type="Extensions.ConsoleMessageTracingElement, Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
  </behaviorExtensions>
</extensions>

, это прекрасно работает, но если я перенесу свой пользовательский код поведения в проект со строгим именем,и обновите поведение, как показано ниже:

    <add name="consoleMessageTracing" type="Common.WcfExtensions.ConsoleMessageTracingElement, Common.WcfExtensions, Version=1.1.0.0, Culture=neutral, PublicKeyToken=f7ac309eefe2c404" />

я получаю следующую ошибку:

SetUp: System.Configuration.ConfigurationErrorsException: Тип 'Common.WcfExtensions.ConsoleMessageTracingElement, Common.WcfExtensions, версия = 1.1.0.0, Culture = нейтральный, PublicKeyToken = f7ac309eefe2c404 'не может быть загружен для расширения' consoleMessageTracing '.

Может кто-нибудь помочь объяснить, что я делаю неправильно?правильный ключ токена и верная версия сборки.

ОБНОВЛЕНИЕ: если я использую редактор конфигурации WCF, я получаю то же сообщение.по какой-то причине не удается прочитать DLL, Common.DLL находится в каталоге bin.

1 Ответ

1 голос
/ 20 июля 2011

ОК, так где вы развертываете сборку со строгим именем? Если он находится в GAC на машине, он должен найти его там. Если он находится в вашей базе приложений, то будет найдена первая сборка, которая найдена с совпадающим именем DLL (Common.WcfExtensions.dll), и если у вас окажется одна лежащая, не имеющая строгого имени, то она не выполнит загрузку.

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

Я также обнаружил, что расширения поведения очень чувствительны к таким вещам, как пробелы в имени. Попробуйте удалить и добавить пробелы в различных комбинациях

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