1

私はIISExpressでWebサービスを利用しており、ブラウザーを使用してエンドポイントを参照できるため、そのWebサービスが機能していることがわかります。WinFormsでテストアプリケーションを作成していて、サービスのメソッドを呼び出したいと思っています。

通話に足を踏み入れようとすると、このエラーが発生します。

IISExpress:サーバーに自動的にステップインできません。リモートプロシージャはデバッグできません。

Webサービスがデバッグモードに設定されていますが、IISExpressがデバッグを許可しないようにする設定があるのでしょうか。

更新: これは、テストアプリのbinフォルダーではなく、Webサービスフォルダー内の別の場所に保存されているため、テストアプリのメモリに.pdbファイルが読み込まれていないためかどうか疑問に思います。app_code.pdbがWebサービス用に配置されているbinフォルダーのフォルダーを指定しようとしましたが、それでもうまくいきません。

では、これはどのように行われますか?私は困惑しています。

アップデート2: 1週間調べても、これを機能させることができませんでした。

したがって、基本的な要件は次のとおりです。1)WinFormsアプリを使用して、2)さまざまなWebサービスを呼び出すことができ、3)各サービス呼び出しにステップインできるようにする必要があります。サービスは、IISExpressを使用してルートWebサイトのサブアプリケーションとしてホストされます。WinFormテストアプリはWebサービス呼び出しを行っていますが、IISExpressはNantタスクを介して開始されます。Webサービスは古いWebサイトタイプのプロジェクトであるため、app_code.dllファイルがあります。ビルドされたpdbファイルを指すようにシンボルパスを設定しようとしましたが、次の行に沿ってエラーが発生します。

「このフォルダに一致するシンボルファイルが見つかりませんでした」。

Webサービスのデバッグがこれほど難しいとは思ってもみませんでしたか?!?

4

2 に答える 2

1

1) テスト プロジェクトで Web サービスの DLL を参照します。

2) IISExpress は、winforms アプリケーションとはまったく異なるアプリケーションです。DLL を参照しても、Web サービス コードに自動的にステップ インすることはできません。IISExpress.exe プロセスにアタッチする必要があります。winforms プロジェクトを開始したら、Debug...Attach to Process をクリックし、IISExpress.exe を選択します。これで、Web サービス コードに実際にステップ インできるようになります

于 2013-03-01T17:36:43.803 に答える
1

これは遅い応答であることを認識していますが、これは私が遭遇したものです (特に、WCF プロジェクトから長期間離れた後)。

「クライアント側」の呼び出しコードではなく、「サーバー側」のサービスクラスコードにブレークポイントが設定されていることを確認してください。これは、サーバー側サービスが必要なデバッグ情報 (ブレークポイント) をサーバー上の .pdb ファイルにコンパイルするためです。

于 2013-07-02T13:11:20.167 に答える