ソリューションをまたがるデバッグの方法とは?

このQ&Aのポイント
  • vb.net2003で開発をしている場合、windowsソリューションとwebserviceソリューションを連携させることがあります。しかし、windowsソリューションからwebserviceソリューションのwebメソッドを呼び出す際に、デバッグするときにステップインできないことがあります。同じような作りの他のソリューションではステップインできるのに、何が原因なのでしょうか?
  • vb.net2003での開発時に、windowsソリューションとwebserviceソリューションを連携させる際、デバッグするときにwebserviceソリューションにステップインできない問題が発生することがあります。同じような構成の他のソリューションではステップインできるのに、なぜこのソリューションではステップインできないのでしょうか?原因と解決策を教えてください。
  • vb.net2003で開発をしている場合、windowsソリューションとwebserviceソリューションを連携させる際にデバッグするときに問題が発生することがあります。具体的には、webserviceソリューションにステップインできないことです。他のソリューションではステップインできるのに、このソリューションではなぜステップインできないのでしょうか?結論から言うと、原因と解決策は特定の設定にあります。
回答を見る
  • ベストアンサー

ソリューションをまたがるデバッグについて

こんにちわ。 いまvb.net2003で開発をしている者です。 windowsソリューションとwebserviceソリューションを1つずつ作り, windowsソリューションからwebserviceソリューションの webメソッドを呼び出す形です。 ステップ実行でデバッグするときに, webserviceソリューションを起動した後, windowsソリューションを実行したのですが, webserviceソリューション側へステップインしていきません。 ちなみに同じような作りのほかのソリューション同士では, webserviceソリューション側へステップインしていきます。 比べたところ,一見違いが見当たりません。 webserviceソリューション側へステップインしていくためには, どうすれば良いでしょうか? 教えてください。宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.6

ご回答が遅れました。つまりは、下記のようになっているという認識で宜しいでしょうか? ・デバッグできるWebサービス(Solution1のService1.asmxとします) ・デバッグできないWebサービス(Solution1のService2.asmxとします) ・Windowsアプリ(Solution2とします) ・Solution2は、Solution1にあるWebサービス(2種類のasmx)を呼び出している ・Windowsアプリ(Solution2)をデバッグ実行した際、  Service1.asmx 内にあるメソッドは、デバッグはできるが、  Service2.asmx 内にあるメソッドがデバッグできない 間違いございませんでしょうか? ということで、試した結果、現象は、違うのですが、私の方でも似た症状が発生したのを確認しました。 (どちらもデバッグできない) そこで、更に確認になりますが、 ・Solution2 には、Solution1で作ったWebサービスのプロジェクトを  Projectファイル単位で追加してますか? (Web参照で追加したものではなく、Webサービスのソースが格納  されているProjectファイルです) ・Solution1には、Web参照が2種類追加する必要がありますが、1種類になっていませんか?  (*.asmx ファイルが違うと、Windowsアプリ側に追加すべきWebサービスは、2種類(Service1とService2)にしなければなりません) ・デバッグ実行時、Windowsアプリ側で、Webサービスを呼び出している場所にブレークポイントを  貼って、F11を教えて、ステップインさせてもデバッグできませんか? という点を教えて下さい。 ちなみに、私は、Windowsアプリ側でWebサービスを呼び出そうとしている箇所に ブレークポイントを貼り、F11でステップインさせたところ、 Webサービス側のソースをデバッグすることができました。 (F5や、F10で実行しても、Webサービス側にブレークポイントを貼ってもDebugできないようです) ご確認下さい。

tatsurou
質問者

お礼

kero_mioさん 回答ありがとうございます。 私のほうの状況ですが, Windowsソリューションはひとつではなく, うまくいく.asmxファイルを呼び出すものと, うまくいかない.asmxファイルを呼び出すものとで 別々です。 ところで今日,改めてうまくいかない.asmxファイルを呼び出そうと したところ,なぜかWindowsソリューションから .asmxファイルにステップインしていきました。 原因はわかりません。前回までの動かし方と同じなんですが… これでしばらく様子を見ようと思います。 いろいろと教えて頂きまして,ありがとうございました。

その他の回答 (5)

  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.5

度々、すいません。(いろいろと的がはずれているようでご迷惑をお掛け致します) そこで、構成の確認なんですが、 ・デバッグできないWebサービス(Solution1とします) ・デバッグできるWebサービス(Solution2とします) ・Windowsアプリ(Solution3とします) とあって、Solution1と、Solution2は、同じような似た構成である ということでよろしいですよね? ひとつ気になったのですが、Solution1に含まれるWebサービス用の Projectファイルのプロパティ ページを開いて頂き、 [構成プロパティ]->[デバッグ]画面の下の方に 「有効にするデバッグ」という項目がありますが、 その項目の「ASP.NET デバッグ」というチェックボックスはON になっていますか? もし、OFFになっていたら、ONにしてみてください。 元々、ONになっているようであれば、別の原因ですね。 (Windowsアプリ側から、対象のWebMethodが呼び出されていない等) 実際にデバッグなしで実行した場合、呼び出せるか試してみた 方がいいと思います。 それでもダメなら、Webサービス側のロジックにエラーがある 可能性があります。 一度、http://サーバ名 or IPアドレス/WebService/問題のasmx.asmx をIE等のブラウザでアクセスし、デバッグしたいWebMethodを 起動してみてエラーがないことを確認してみてください。 よろしくお願いします。

tatsurou
質問者

お礼

kero_mioさん こちらこそ,たびたびご回答頂きましてありがとうございます。 私の説明に誤りがありましたので,訂正させて頂きます。 Webサービスでデバッグできる分とデバッグできない分は, 同じソリューションの同じWebプロジェクトに含まれています。 .asmxファイルが異なっています。 確認しましたところ, 当該Webプロジェクトの「ASP.NET デバッグ」チェックボックスはONになっていました。 つぎにデバッグできない.asmxファイルを「スタートページに設定」してから, 「当該Webプロジェクト-デバッグ-新しいインスタンスを開始」 としたところ,正常にIEが起動し,一見したところ エラーがないようです。 素人考えですが,.asmxファイルの設定に何か差異があるのかな? と思ったりもしているのですが… 引き続き調べます。何かおわかりになる点がありましたら 教えてください。よろしくお願いします。

  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.4

確認の意味で試して頂きたいのですが、 VBのソース(WebMethod内に)「Stop」してみるのは やってみましたか? ブレークポイントを止めたい場所に「Stop」と記述して、 WebサービスをDebugモードでビルドします。 その後、Stopの記述を有効にするために、下記を行う必要があります。 ・IIS(インターネットインフォメーションサービス)の  MMC画面を開く(管理ツールにあるやつです) ・問題のWebサービスがあるWebサイトを右Clickで選択し  プロパティを選択します ・[ホームディレクトリ]タブをClickし、[構成]ボタンをClickします  (すると、アプリケーションの構成 というDialogが  表示されます) ・[デバッグ]タブをClickし、  ASPのサーバ側の~デバッグを有効にする というオプションを  ONにします ・IISを再起動します。  (サービスマネージャかDOS窓で  IISAdmin と World Wide Webサービスを再起動します) DOS窓の場合 net stop iisadmin net start iisadmin net start w3svc これで、Windows側のアプリを呼び出すと、 例外が発生によるVS.NETのデバッガを起動するか聞かれるので そこで、OKボタンを押し、VS.NETを起動してみて下さい。 恐らく、ステップ実行はまだできない可能性がありますが、 もし、VS.NETが起動できるようであれば、別の原因が考えられます。 もし、VS.NETが起動しないようであれば、 単純にWebサービスが呼ばれていない可能性がありますので、 Windows側のロジックを確認して頂きたいと思います。

tatsurou
質問者

お礼

kero_mioさん 回答ありがとうございます。 教えて頂いた通り, Webメソッド内にStopを入れてリビルドし, 呼び出し元のソリューション側で, Web参照の更新をし直しました。 さらに, IISの設定で,「ASPのサーバ側の~デバッグを有効にする」も オンにして,再試行してみたのですが, やはり結果は同じでステップインしていきませんでした。 同じWebサイトのなかでも,ステップインできる.asmxファイルも あるのですが… 引き続き調べますが,もし何かおわかりになることがあれば 教えてください。宜しくお願いします。

  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.3

ご連絡ありがとうございます。 確認ですが、 ・*.asmx ファイルのプロパティをVS.NET上でみた場合、  ビルドアクションは、「コンテンツ」になっていますか? ・ビルドした時、Debugモードでビルドしていますか? ・ビルドするとき、対象のWebサービスが含まれているProjectを  含んでビルドしていますか?[ビルド]メニューの[構成マネージャ]  を開き設定をご確認下さい。 ・Windowsアプリケーション側のSolutionで、  Webサービスの更新(Web参照の更新)を行い、  Windowsアプリケーション側のビルドをしなおしたり  してみましたか? ・ASPNETユーザが、Debugger Userグループに所属していますか? もし、これらをやってうまくいかない場合は、 ちょっと強引ですが、ブレークポイントを止めたい場所に VBのソースで直接「STOP」と記述してみてください。 (STOPの記述を有効にするには、IISの設定が必要になることも  ありますが、ひとまずそれで試してみてください) 宜しくお願いします。 

tatsurou
質問者

お礼

kero_mioさん こちらこそ,ご回答ありがとうございます。 ご指摘の点ですが, ・ビルドアクションは"コンテンツ"になっています。 ・"Debug"モードでビルドしています。 ・対象のWebサービスプロジェクトを含んでビルドしています。 ・Web参照の更新とリビルドをしていました。 ・ASPNETユーザをDebugger Userグループに追加しました。 ・クライアント側,webservice側の両方にstopを入れてみました。 以上,すべて確認しましたがやはりステップインしていきません。 私のほうでも引き続き調べていますが, もし何かおわかりになりましたら,教えてください。 宜しくお願いします。

  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.2

すいません。下記の回答に関する補足です。 >※PC起動した一発目やIISを再起動した直後は、 >「aspnet_wp.exe」プロセスがないので、 >該当のWebサービス(*.asmx)に対して、 >ブラウザでアクセスしてみてください。 >すると、「aspnet_wp.exe」ができるようになります。 なんですが、 http://localhost/WebServiceSample/Service1.asmx みたいな感じで、IE等のブラウザでアクセスしてみてください。 すると、「aspnet_wp.exe」プロセスが生成されていますと いう意味です。よろしくお願いします。

tatsurou
質問者

お礼

kero_mioさん 回答ありがとうございます。 教えて頂いた方法で試してみたのですが, やはりwebservice側にステップインしていきませんでした。 ちなみにうまくいくほうと,うまくいかないほうとの違いは, 参照している.asmxファイルが異なっており, うまくいかないほうの.asmxを参照するときは, どのwindowsソリューションから参照してもうまくいきません。 .asmxファイルの設定自体に原因があるのでしょうか?

  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.1

下記の方法があります。 ・Windowsアプリ側とWebサービス側のSolutionを2つ立ち上げておく  (VS.NETを2つ立ち上げておく感じです) ・Webサービス側にとめたい場所にブレークポイントを設定しておく  (できるだけ、WebMethod内のどこかが良いです) ・Webサービス側のVS.NETの[デバッグ]メニューから  [プロセス]を選択し、「aspnet_wp.exe」が起動しているプロセスを選択し、  [アタッチ]ボタンを押す。すると、Webサービス側のデバッグが開始されます。  (アタッチしたら、デバッグするプログラムの種類を聞かれますが、OKボタンを押します)  (アタッチが成功したら、「プロセス」のDialog画面で[閉じる]をClickします)  ※PC起動した一発目やIISを再起動した直後は、「aspnet_wp.exe」プロセスがないので、   該当のWebサービス(*.asmx)に対して、ブラウザでアクセスしてみてください。   すると、「aspnet_wp.exe」ができるようになります。 ・後は、Windowsアプリから、該当のWebサービスを呼び出してみてください。  するとデバッグできるようになります。 ただし、この時の注意点としては、Webサービス側のデバッグ中、 Webサービスがタイムアウトする可能性が高いですので、 Webサービスを呼び出す際、TimeOut値を設定しておくことをお勧めします。 Widowsアプリ側でWebサービスのTimeOut値設定例 Dim ws As New Debug.Service1 ws.Timeout = 6000 MessageBox.Show(ws.HelloWorld()) こんな感じでやってみてください。

関連するQ&A

  • .net ソリューションでwebserviceが利用不可

    こんにちは。 いま.net 2003でvb.netの開発をしています。 あるソリューションファイルにwebserviceを参照していますが, ソリューションを開こうとすると, 「開こうとしているプロジェクトはWebプロジェクトです。 URLパスを指定してプロジェクトを開いてください。」 というメッセージが表示されてしまいます。 昨日まではこのようなメッセージが出なかったのですが… さらに開いた後,ソリューションエクスプローラを見ると, あるWebServiceが"利用不可"となっており, 「プロジェクトの再読み込み」をしようとすると, やはり上記と同じ文言のエラーメッセージが表示されてしまいます。 このエラーを解決してメッセージが出ないようにするには どうすれば良いでしょうか? 教えてください。よろしくお願いします。

  • visual studio code デバッグ

    vscode でpython使用 拡張機能をインストールしました。 実行→デバッグの開始 と選ぶとツールバーが出て、ステップイン実行など選べるはずなのですが、ステップオーバー、ステップイン、ステップアウトがグレーアウトして選べません。どのようにしたら表示されるでしょうか? よろしくおねがいします。

  • .Net Frameworkのコードのデバッグ

    .Net Frameworkのコードをデバッグしたいのですが、ソース内へのステップインが出来ません。MSDNや他のWebサイトを参考にして、オプション設定とシンボルサーバーの登録は行いました。 https://referencesource.microsoft.com/setup.html マイコードで.Net Frameworkの関数をコールしている箇所でステップインしようとしても、中に入らずステップオーバーしてしまいます。何か設定が不足しているのでしょうか? MSのリファレンスソースのサイトからソースはDL出来るのですが、シンボルファイル(.pdb)は含まれていません。 開発環境はVisual Studio Professional 2017 です。

  • WebLogicによるデバッグについて。

    WebLogicによるデバッグについて。 以下の環境があります。 【開発PC】 Windows XP Eclipse(Javaサーブレットの作成に用いる) 【Webサーバ】 Windows Server 2003 WebLogic 10.3 開発PCとWebサーバはLANでつながっています。 開発PC上でEclispeを用いて、Webサーバ上のWeblogicを用いてJavaサーブレットのデバッグは可能でしょうか? Eclipseで、Webサーバのデプロイは可能なのですが、デバッグが起動できません。 開発PCにWebLogicをインストールしたローカルサーバの場合、Eclipseでデバッグが出来ます。 可能であれば、参考資料等ございましたら、ご教示願えませんでしょうか。

    • ベストアンサー
    • Java
  • JSP/サーブレットのデバッグ環境について

    現在JSP/サーブレットを利用し開発を行おうと考えています。 eclipseのリモートデバッグについての 設定方法が分かりません。 以下に現在の状況を記述します。 <状況>  ・デバッグ起動するオプションは指定済み(Port:8000)  ・サーバー側のファイアウォールのPort:8000は許可済み  ・サーバー側でnetstat -anを実行したところPort:8000「ESTABLISHED」  ・クライアント側でnetstat -anを実行したところ「ESTABLISHED」   ※8000ポートに対応するPort  ・eclipseにてリモートデバッグの実行すると、   「リモート VM に接続できませんでした。 接続がタイムアウトしました。」の   メッセージが表示されます。 <環境>  ・サーバー   WindowsXP   Tomcat5.5  ・開発機   WindowsXP   Eclipse(3.3) 開発機でデバッグを行う際には、Tomcatがインストールされていないと デバッグ(ステップ実行)できないのでしょうか。 ※なるべく開発機にTomcat等はインストールしたくありません。 よろしくお願いします。

    • ベストアンサー
    • Java
  • デバッグって?

    ExcelVBA 勉強中の者です。 VBE のプロシージャの表示されている画面で F8 を押してマクロをワンステップづつ実行し、進行状況を確認したいと思いました。そこでお伺いしたいのはプロシージャとワークシートを同時に一画面に表示して変化を目の当たりに見ることはできますか。 その方法を教えてください。 もう一つ聞いてもいいですか。 ローカルウィンドウによるデバッグは分かったような気がします。(20%位かな?) でもイミディエイトウィンドウの使い方、意味が全くわかりません。教えてください。よろしくお願いします。

  • レゴマインドストームNXTのデバッグについて

    レゴマインドストームNXTのデバッグについて レゴマインドストームNXT用アプリを、C/C++で開発しようと考えています。 この開発で利用できるデバッガは存在しないのでしょうか。 以下のページを見ると、ステップ実行のデバッガにてリアルタイム制御を デバッグすることは出来ないため、Blouetoothによるデータロギングを 行うべきだと書かれています。 http://lejos-osek.sourceforge.net/jp/datalogging.htm 私はそれ以前にステップ実行を行うためのデバッガを探しているのですが、 まだ見つかっていません。

  • ECLIPSEでのTOMCATを使ったデバッグ

    こんにちわ。 現在開発でECLIPSEを使用しているのですが、 デバッガを使ってステップ実行をしたいのですが、 デバッガかブレークポイントにとまってくれません。 どうしたらよいのでしょうか? デバッガを使いたいときはTomcatを立ち上げて、デバッグを実行してブラウザから動作する。 と、この順番であってますか?? 開発を進めるためにどうしても必要なので みなさんどうかよろしくお願いします。

  • VB.NET 異なるプロジェクト間のデバッグ

    こんにちわ。 いまVB.NET2003で開発している者です。 あるVBProjファイルが参照設定であるdllファイルを参照しています。 VBProjファイル内のあるコードにブレークを張って, dllファイル側内にもブレークを張って, プロジェクトをまたがって,動的にデバッグしたいのですが, どうすれば良いでしょうか? 教えてください。よろしくお願いします。

  • VB.Netソリューションでフォームが開けない

    こんにちわ。 いまVB.Net2003で開発をしている者です。 ソリューションであるフォームをデザインモードで開こうとしたところ,コードウィンドウしか表示されません。 ちなみに,このフォームは「*.vb」と「*.resx」の2ファイルとも, 他のユーザによる排他チェックアウトがされています。 これは「排他チェックアウト中」だからフォームをデザインモードで開くことができないのでしょうか? もしそうだとしたら「排他チェックアウト中」でもフォームをデザインモードで開くにはどうすれば良いでしょうか? 教えてください。よろしくお願いします。

専門家に質問してみよう