2009-06-23 21 views
2

IISによってホストされるWCFサービスを開発中です。私は基本クラスにKnownType属性を追加する必要があります。アセンブリ参照がWeb.configで解決されない

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

しかし、私のマウスがMyBaseの上にあるとき、私は、エラーメッセージが表示されました:KnownType属性を追加する一つの方法は、このようなWeb.configファイルにセクションを追加することです。エラーメッセージは「無効なモジュールの資格:アセンブリの解決に失敗しましたMyBaseDll」です。 MyDerivedDllにも同じエラーメッセージが表示されます。

追加情報:
MyBaseDLL.dllとMyDerivedDLL.dllの両方がIIS/binフォルダにあります。どちらのDLLも.netシステムアセンブリ以外のアセンブリを参照しません

答えて

0

サービスを実行するとどうなりますか?エラーメッセージは偽である可能性があります。例えば、ReSharperは時には設定ファイルのアセンブリ参照について混乱します。

OTOH、それ以外は正しいです。

+0

感謝をアセンブリの完全な名前と種類(名前空間とすべて)の完全な名前を与えることを試みました。 IISによってホストされるWCFサーバーのソリューションの元の設計は、/ binフォルダーを明示的に維持することであり、dllのほとんどはweb.configファイルで指定されている拡張dllフォルダーにあります。エラーメッセージが表示されたら、必要なDLLを/ binフォルダにコピーしました。代わりに、プロジェクト設定から必要なdllを参照する必要があります。私の即時の問題は解決されましたが、オリジナルのデザインを保持しなければならない場合、拡張dllフォルダにあるdllをどのように参照しますか? –

+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> 
関連する問題