2012-02-17 7 views
13

私のプロジェクトでは、Webサービスを持つWebアプリケーションを作成しました。同じソリューションで、別のWebアプリケーションを追加しました。私はこのアプリケーションからWebサービスを消費しています。私はWeb参照オプションを使用してWeb参照を追加してWeb参照を追加しました。私は(私はWeb参照を追加する)生成されたプロキシクラスをデバッグしたい。私はプロキシクラスにデバッガを入れましたが、うまくいきませんでした。プロキシクラスをコピーして、クライアントのWebアプリケーションに同じクラスの同じコンテンツを作成し、Web参照を削除しました。しかし、私はまだプロキシクラスをデバッグすることができません。プロキシクラスをどのようにデバッグできますか? 助けてください。C#のデバッグWebサービスプロキシクラス

+0

Webサービスはどのようにホストされていますか? – Bernard

+0

私の限られた知識として、インターフェイスを実装することによって、Webサービスとその操作を利用するクラスがそうしています。この目的のためにインターフェイスを実装しようとしましたか? –

+0

プロキシ自体をデバッグするか、サービス上のコードをデバッグできるようにしたいのですか? –

答えて

16

は、生成されたコードあなたがWebサービスの呼び出しを行う直前にブレークポイントを設定し

3

この機能を試しましたか? System.Diagnostics.Debugger.Launch();

上記の関数を使用してデバッガを置く代わりに、これが問題を解決する可能性があります。あなたは(あなたが明らかにしようとしているものを)ブレークポイントを設定することができますのVisual Studio 2010で機能テストを()

public bool test() 
{ 
System.Diagnostics.Debugger.Launch(); 
//..put it on top of the function 
} 
7

デバッグしたいと

ような。しかし、アプリケーションを右クリックしてデバッグを選択し、新しいインスタンスを開始する新しいインスタンスをクリックして、Webサービスソリューションを実行してみてください。

デバッグは、私は通常、これを行う方法は、ローカルIISでのクライアントアプリケーションとWebサービスのホスティングアプリケーションをホストする起動プロジェクトオプション

+0

+1これに+1。私は彼が両方のアプリを起動していないと思う。 –

+1

しかし、通常の実行と新しいインスタンスの開始との間には違いがあることにも注意してください。私はこの問題を多くの時間(両方が実行されているが、サービスはデバッグしていませんでした)、これが解決策です。 –

+1

また、デフォルトでは、通信プロトコルのエンドツーエンド通信プロトコルが生成されている可能性があります。このプロトコルは、実行可能ファイルのデバッグフォルダにもあります。時には本当に有益なことです...もう一つの追加として、同じソリューションとスタジオの両方のプロジェクトを持っていて、サービスをインポートするには、binフォルダからバイナリを開始する必要があります。この方法でプロジェクトを右クリックすることができます - >サービスリファレンスを追加し、ウィザーズを使用します。 – Kjellski

5

としてだけでセットを下回っています。 2つのアプリケーション仮想ディレクトリが必要です。アプリケーションごとに個別のアプリケーションプールを使用します。クライアントアプリケーションからWebサービスアプリケーションへのリクエストが成功すると、2つのワーカープロセス(w3wp.exeプロセス)が必要です。それをデバッグするには、正しいw3wpプロセスにデバッガを接続できる必要があります。

+0

+1両方のプロセスに接続してブレークポイントを設定するだけです。完了しました。 –

+0

+1これはサービスをデバッグするときに行うことです。 –

2

から[DebuggerStepThroughAttribute()]を削除してください、その後、Step Into(F11)Webサービスは、自分自身を呼び出します。 Webサービスの内部に入ると、いつでもどこでもブレークポイントを設定できます。

3

のVisual Studio 2008の2010 \:

  1. が、その後、デバッグ\一般オプション\ツールにあなたのWebサービス・アプリケーション

  2. 行くに<compilation debug="true">を設定し、はマイコードのみを有効にしますオフ(のみマネージド)

  3. プロキシcにブレークポイントを設定しますlass(WebサービスではInvoke上に1つのブレークポイントを設定し、別のブレークポイントは返す行に設定)

    通常通りデバッグします。あなたはステップへの要求のようなものが表示されている場合

    はただ指示に従ってください(右の行をクリックし、「プロパティおよび演算子オーバーステップ」または「ステップのチェックを外し、財産またはオペレータ
    の自動ステップオーバーの結果具体的に...」)。他の回答への補足として

    enter image description here
2

、あなたはまた、ソリューションを右クリックして選択することができ、「セットスタートアッププロジェクト...」

共通プロパティ/スタートアッププロジェクトの下では、選択し「複数のスタートアッププロジェクト:」のラジオオプションを選択し、Webサービスとプロキシプロジェクトのアクション「開始」を選択します。

デバッグは、実行するたびに両方のプロジェクトでデバッガを起動するようになりました。

1

(C#の場合)あなたのコードに追加します。

System.Diagnostics.Debugger.Launch(); 

チェックを使用すると、 "ソリューションの構成:デバッグ" としてプロジェクトをビルドする場合。

関連する問題