2011-08-04 10 views
0

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

答えて

2

です。
は、以下のことを試してみてください。

  1. 返されたWSDLファイルを参照するために、シオマネキなど、HTTPスニッファを使用してください。 wsdlファイルの代わりにエラーページが表示されていないことを確認してください。
  2. エラーページではなくWSDLファイルを取得している場合は、そのファイルを保存してサービスをシングルに戻し、WSDLを取得して2つのWSDLファイルを比較して問題を見つけます。
+0

変更をテスト環境に導入し、製品が期待通りに機能することを確認できました(「機能的に」)。 SeviceModel Performance Countersを使用してインスタンスの動作が期待どおりに変更されたことも確認しました。 SVCUtilでプロキシを作成することはできません。私はまだWSDLをレビューしていますが、これは純粋にホストの動作の変更であり、消費者の契約変更ではないため、変更を見つけることは期待しません。繰り返しますが、唯一の変更はInstanceContextMode – JoeGeeky

+0

インスタンスコンテキストモードは、サービスホストがサービスタイプのインスタンスを作成する方法に影響します。メタデータへのアクセスはインスタンスの作成を必要としないため、svcutilの使用時には影響しません。サービス側のWCFトレースをオンにして、エラーがないかログを確認してください。 – IdoFlatow

+0

もう一度、ありがたいことに、これは何も明らかにしませんでした。 – JoeGeeky

関連する問題