2012-06-21 18 views
6

IIS 7.5を使用している私の会社のサーバーにWCFサービスを展開しました。しかし、私は私のクライアントアプリケーションを設定し、サーバーへの参照をサーバーに追加し、このコードを使用します。WCFサービスクライアントアプリケーションが「オブジェクトのインスタンスに設定されていません」というオブジェクトを取得しました

ServerReference.ServiceClient client = new ServerReference.ServiceClient(); 

var s = client.GetBrand("Audi", false); 

"オブジェクト参照がオブジェクトのインスタンスに設定されていません"という例外が表示されます。 sオブジェクトはnullではありません(localhost上でサービスを試してみました。

スタックトレースを見ると、次のようになります。

21.6.2012 16:16:29 

オブジェクト参照がオブジェクトのインスタンスに設定されていません。

Server stack trace: 
    at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter) 
    at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc) 
    at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) 
    at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) 
    at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) 

P.SWCFサービスがホストされているCPUはビジュアルスタジオを持っていないので、デバッグはできません

+2

ホスティングサービスの[WcfTestClient](http://msdn.microsoft.com/en-us/library/bb552364.aspx)の仕事をしていますか?絞り込んで実装か、サービスが初期化されていないか確認してください。契約が変更された可能性もあります(最後にメタデータを取得したときに応じて)、サービスのインスタンス化に失敗する可能性があります。 –

答えて

2

私がコメントで示唆したように、WcfTestClientを使用してデータを取得できることを確認してください。これにより、サービスが動作していることが確認され、メソッド呼び出しが単体テストされて、クライアントの視点から機能していることが確認されます。

第2に、あなたがこれらの問題を避けるためにcorrect WCF call methodを使用してください依存関係を導入したら、障害(サービス、クライアントのインターネット接続など)を予測することは常に良い考えです。

あなたのプロジェクトについて何も知らずに、それを修正する方法を説明するのは難しいです。古いWSDL、誤った設定の* .config、サーバ上の未公開のエンドポイント、その他の問題は問題の根源になる可能性がありますが、あなたが示したことを与えられれば、それはどうなるか分かりません。

私が持っているかもしれないより多くのアドバイスがあれば私の答えを更新することができます。今のところ、サーバー上でenabling WCF tracingを見て、ログを見直して、サーバーの最後に何かがあるかどうかを確認してください(クライアントの呼び出しを確認して確認するだけでなく)。

+0

WCFトレースは現在現在作業中です(なぜか分かりません)...私の研究によれば、今日の研究には拘束力があります。私が気付いて興味深い点は、テストクライアントを使用してlocalhost上にあるServiceを呼び出すときにnullパラメータで呼び出すと、IISホストサービスと同じエラーが返されるということです(すべてのパラメータで)。それは何か考えています、p.sは他に何か私はここに私のwebconfigでコード – user1279173

1

これでデバッグする必要はありません。 web.configにWCFトレース設定を追加するだけで、元のエラーに関する情報を取得できます。私は私のプロジェクトで同じ問題を抱えているhttp://msdn.microsoft.com/en-us/library/ms733025.aspx

+0

copy-idをよく理解するためにポストし、何も起こらなかったと思うでしょう。ファイルが作成されていないか、そのようなもの – user1279173

+0

異なるIDを持つアプリケーションプールでWCFサービスを実行していますか?その場合は、問題のディレクトリに対する完全な制御権を持っていることを確認する必要があります。私は、情報レベルのトレースでは、サービスをブラウズするだけでテストできると思いますが、詳細レベルが必要な場合があります。 – Rich

0

を参照してください、私の場合、私は、例外がサービスのコンストラクタで発生したが、私は任意のメソッドを呼び出すときに、それが唯一のトリガーだことがわかりました。

0

設定トレースソースは、エンドツーエンドのトレース関係をサポートするために、トレースと設定トレースレベル、トレースセット活性および増殖を放出、およびトレースにアクセスするためのトレースリスナを設定します。 オペレーションコール、コード例外、警告、およびその他の重要な処理イベントなど、アプリケーションのすべてのコンポーネントにわたってプロセスマイルストーンをトレースします。 トレース機能が誤動作したときのWindowsエラーイベント。 Event Logging in WCFを参照してください。

関連する問題