程序集引用未在Web.config中解析

时间:2009-06-23 21:16:13

标签: wcf iis assemblies web-config

我正在开发由IIS托管的WCF服务。我需要将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 个答案:

答案 0 :(得分:2)

您是否尝试过提供程序集的全名和类型的全名(名称空间和所有内容)......

<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>

答案 1 :(得分:0)

运行服务时会发生什么?错误消息可能是虚假的。例如,ReSharper有时会对配置文件中的程序集引用感到困惑。

OTOH,其他时候,这是正确的。