7

IIS 7.5 を使用して、私の会社のサーバーに WCF サービスを展開したところ、すべて正常に動作しているようです。しかし、クライアントアプリケーションをセットアップし、サーバーへのサーバー参照を追加してから、このコードを使用すると.

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

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

「オブジェクト参照がオブジェクトのインスタンスに設定されていません」という例外が発生します。s オブジェクトは b 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)

助言がありますか ??PS WCFサービスがホストされているCPUにはビジュアルスタジオがないため、デバッグできません

4

4 に答える 4

2

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

次に、(SO に投稿するために骨抜きにしない限り)この種の問題を回避するために、正しい WCF 呼び出しメソッドを使用します。依存関係を導入したら、失敗を予測することを常にお勧めします (サービス、クライアントのインターネット接続、またはその他の場合でも)。

プロジェクトについて他に何も知らなければ、それを修正する方法を説明するのは困難です。古い W​​SDL、誤って構成された *.config、サーバー上の公開されていないエンドポイント、およびその他の問題などの要因が問題の原因である可能性がありますが、あなたが示したことを考えると、それがどれであるかはわかりません。

より多くの情報を提供できる場合は、回答を更新して、さらにアドバイスを提供できることを嬉しく思います。ここでは、サーバーでWCF トレースを有効にすることを検討して、ログを振り返り、サーバー側で問題がないかどうかを確認します (クライアントの呼び出しをステップ実行して確認することに加えて)。

于 2012-06-21T16:54:03.207 に答える
1

それを介してデバッグする必要はありません。web.config に WCF トレース セットアップを追加するだけで、元のエラーに関する情報を取得できます。http://msdn.microsoft.com/en-us/library/ms733025.aspxを参照してください。

于 2012-06-21T16:54:16.250 に答える
0

トレース ソースを構成してトレースを出力し、トレース レベルを設定し、アクティビティ トレースと伝播を設定してエンド ツー エンドのトレース相関をサポートし、トレース リスナーを設定してトレースにアクセスします。

Windows Communication Foundation (WCF) は、診断トレース用に次のデータを出力します。 操作呼び出し、コード例外、警告、その他の重要な処理イベントなど、アプリケーションのすべてのコンポーネントにわたるプロセス マイルストーンのトレース。トレース機能が誤動作したときの Windows エラー イベント。WCF でのイベント ログ を参照してください。

于 2016-11-17T18:02:25.150 に答える