WindowsサービスがホストするWCF Webサービスがあります。私はSVCUTILを使用してプロキシを生成してきたと物事はうまく働いてきたが、今日、私はInstanceContextMode.PerSessionにInstanceContextMode.SingleからInstanceContextModeを変更し、今私は、私は特定できない以下のエラーが発生します。この1つの設定以外は何も変更しないことで、エラーを確実に再現することができます。何か案は???エラー:ここWCF PerSesson InstanceContextModeはSVCUtilを使用したプロキシの生成を防止します
はエラーSVCUTIL
メタデータファイルを生成からのメッセージ... EXECです Host.Services.MyService:サービスの種類をエクスポートするエラー がありました。
An exception was thrown in a call to a WSDL export extension:
System.ServiceModel.Description.DataContractSerializerOperationBehavior 契約: http://MySoftware/ServiceContracts/2011/02:IMyService
次のようにサービス・インターフェースである:
[ServiceContract(Namespace = Namespace.Current, SessionMode = SessionMode.Allowed)]
public interface IMyService
サービス実装のように構成今ありますフォローするS:
[ServiceBehavior(Namespace = Namespace.Current, InstanceContextMode = InstanceContextMode.PerSession)]
public class MyService : IMyService
ここでは、これは、インスタンスコンテキストモードに関連していないようデータコントラクトシリアライザのための私の設定ファイルに現在の設定
<dataContractSerializer maxItemsInObjectGraph="1000000" />
変更をテスト環境に導入し、製品が期待通りに機能することを確認できました(「機能的に」)。 SeviceModel Performance Countersを使用してインスタンスの動作が期待どおりに変更されたことも確認しました。 SVCUtilでプロキシを作成することはできません。私はまだWSDLをレビューしていますが、これは純粋にホストの動作の変更であり、消費者の契約変更ではないため、変更を見つけることは期待しません。繰り返しますが、唯一の変更はInstanceContextMode – JoeGeeky
インスタンスコンテキストモードは、サービスホストがサービスタイプのインスタンスを作成する方法に影響します。メタデータへのアクセスはインスタンスの作成を必要としないため、svcutilの使用時には影響しません。サービス側のWCFトレースをオンにして、エラーがないかログを確認してください。 – IdoFlatow
もう一度、ありがたいことに、これは何も明らかにしませんでした。 – JoeGeeky