アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちわ。
いまvb.net2003で開発をしている者です。
windowsソリューションとwebserviceソリューションを1つずつ作り,
windowsソリューションからwebserviceソリューションの
webメソッドを呼び出す形です。

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

A 回答 (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できないようです)

ご確認下さい。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/07/30 11:49

度々、すいません。

(いろいろと的がはずれているようでご迷惑をお掛け致します)
そこで、構成の確認なんですが、

・デバッグできない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を
起動してみてエラーがないことを確認してみてください。

よろしくお願いします。
    • good
    • 0
この回答へのお礼

kero_mioさん
こちらこそ,たびたびご回答頂きましてありがとうございます。

私の説明に誤りがありましたので,訂正させて頂きます。
Webサービスでデバッグできる分とデバッグできない分は,
同じソリューションの同じWebプロジェクトに含まれています。
.asmxファイルが異なっています。

確認しましたところ,
当該Webプロジェクトの「ASP.NET デバッグ」チェックボックスはONになっていました。
つぎにデバッグできない.asmxファイルを「スタートページに設定」してから,
「当該Webプロジェクト-デバッグ-新しいインスタンスを開始」
としたところ,正常にIEが起動し,一見したところ
エラーがないようです。
素人考えですが,.asmxファイルの設定に何か差異があるのかな?
と思ったりもしているのですが…
引き続き調べます。何かおわかりになる点がありましたら
教えてください。よろしくお願いします。

お礼日時:2007/07/26 09:46

確認の意味で試して頂きたいのですが、


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側のロジックを確認して頂きたいと思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/07/25 10:13

ご連絡ありがとうございます。



確認ですが、
・*.asmx ファイルのプロパティをVS.NET上でみた場合、
 ビルドアクションは、「コンテンツ」になっていますか?

・ビルドした時、Debugモードでビルドしていますか?

・ビルドするとき、対象のWebサービスが含まれているProjectを
 含んでビルドしていますか?[ビルド]メニューの[構成マネージャ]
 を開き設定をご確認下さい。

・Windowsアプリケーション側のSolutionで、
 Webサービスの更新(Web参照の更新)を行い、
 Windowsアプリケーション側のビルドをしなおしたり
 してみましたか?

・ASPNETユーザが、Debugger Userグループに所属していますか?

もし、これらをやってうまくいかない場合は、
ちょっと強引ですが、ブレークポイントを止めたい場所に
VBのソースで直接「STOP」と記述してみてください。
(STOPの記述を有効にするには、IISの設定が必要になることも
 ありますが、ひとまずそれで試してみてください)

宜しくお願いします。 
    • good
    • 0
この回答へのお礼

kero_mioさん
こちらこそ,ご回答ありがとうございます。
ご指摘の点ですが,

・ビルドアクションは"コンテンツ"になっています。
・"Debug"モードでビルドしています。
・対象のWebサービスプロジェクトを含んでビルドしています。
・Web参照の更新とリビルドをしていました。
・ASPNETユーザをDebugger Userグループに追加しました。
・クライアント側,webservice側の両方にstopを入れてみました。

以上,すべて確認しましたがやはりステップインしていきません。
私のほうでも引き続き調べていますが,
もし何かおわかりになりましたら,教えてください。
宜しくお願いします。

お礼日時:2007/07/24 14:21

すいません。

下記の回答に関する補足です。

>※PC起動した一発目やIISを再起動した直後は、
>「aspnet_wp.exe」プロセスがないので、
>該当のWebサービス(*.asmx)に対して、
>ブラウザでアクセスしてみてください。
>すると、「aspnet_wp.exe」ができるようになります。

なんですが、
http://localhost/WebServiceSample/Service1.asmx
みたいな感じで、IE等のブラウザでアクセスしてみてください。
すると、「aspnet_wp.exe」プロセスが生成されていますと
いう意味です。よろしくお願いします。
    • good
    • 0
この回答へのお礼

kero_mioさん

回答ありがとうございます。
教えて頂いた方法で試してみたのですが,
やはりwebservice側にステップインしていきませんでした。

ちなみにうまくいくほうと,うまくいかないほうとの違いは,
参照している.asmxファイルが異なっており,
うまくいかないほうの.asmxを参照するときは,
どのwindowsソリューションから参照してもうまくいきません。
.asmxファイルの設定自体に原因があるのでしょうか?

お礼日時:2007/07/24 10:02

下記の方法があります。



・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())

こんな感じでやってみてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています