Ссылка на сборку не разрешается в файле Web.config - PullRequest
2 голосов
/ 24 июня 2009

Я занимаюсь разработкой службы WCF, размещенной в IIS. Мне нужно добавить атрибут KnownType в мой базовый класс. Одним из способов добавления атрибута KnownType является добавление раздела в файл Web.config следующим образом:

<system.runtime.serialization>
<dataContractSerializer>
  <declaredTypes>
    <add type="MyBase, MyBaseDll">
      <knownType type="MyDerived, MyDerivedDll"/>
    </add>
  </declaredTypes>
</dataContractSerializer>
</system.runtime.serialization>

Но я получил сообщение об ошибке, когда моя мышь находится над MyBase. Сообщение об ошибке «Недопустимая квалификация модуля: не удалось разрешить сборку MyBaseDll». То же сообщение об ошибке для MyDerivedDll.

Дополнительная информация:
И MyBaseDLL.dll, и MyDerivedDLL.dll находятся в папке IIS / bin. Обе библиотеки DLL не ссылаются ни на какую другую сборку, кроме системных сборок .net

Ответы [ 2 ]

2 голосов
/ 24 июня 2009

Вы пытались дать полное имя сборок и полное имя типов (пространства имен и все) ...

<add type="MyNamespace.MyBase, 
           MyBaseDLL, Version=v.v.v.v, Culture=neutral,
           PublicKeyToken=XXXXXX">
           <knownType type="MyNamespace.MyDerived, 
                      MyDerivedDLL, Version=v.v.v.v, Culture=neutral,
                      PublicKeyToken=XXXXXX"/>
</add>
0 голосов
/ 24 июня 2009

Что происходит при запуске сервиса? Сообщение об ошибке может быть поддельным. Например, ReSharper иногда путает ссылки на сборки в файлах конфигурации.

OTOH, в остальное время это правильно.

...