2

http://example.comで実行されている WCF サービス (.NET 3.5) アプリケーションがあります。その web.config は JSONP エンコーディング用に構成されています。

<extensions>
  <bindingElementExtensions>
    <add name="jsonpMessageEncoding" type="My.SharePoint.WebServices.JsonpBindingExtension, My.SharePoint.WebServices, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  </bindingElementExtensions>
</extensions>

クラスMy.SharePoint.WebServices.JsonpBindingExtensionはアプリケーションの一部です。

現在、別の WCF アプリケーションをhttp://example.com/other-services/にデプロイしていますが、ここで問題が発生します。このサービスを呼び出そうとすると、My.SharePoint を読み込めないというエラーが表示されます。この他のアプリケーションでは使用していませんが、.WebServices アセンブリ。トップアプリケーションのweb.configがこのweb.configにマージされているようです。

jsonpMessageEncodingこのサブアプリケーションを削除/登録解除する方法はありますか?

私は次のようなことをしたいと思っていました:

<extensions>
  <bindingElementExtensions>
    <remove name="jsonpMessageEncoding"/>
  </bindingElementExtensions>
</extensions>

しかしremove、この構成セクションにはありません。

何か案は?

4

1 に答える 1

0

新しいアプリケーションが最初のアプリケーションの直下にデプロイされている場合、Web 構成は実際にマージされます。残念ながら、拡張機能を削除することはできません。関連する構成クラスでさえ add メソッド以外はサポートされていません。その理由は、add の呼び出しが最初に処理され、予想される削除に到達する前に型が既に解析されているためです。

回避策 (未テスト) として、ルート アプリケーションの web.config で location 要素を使用し、ルート アプリケーションの拡張子のみを定義することができます。

于 2012-05-02T08:30:40.863 に答える