トップ回答者
Webページ上のボタンクリック後のデバッグ方法について

質問
-
VS2005でWindows アプリをデバッグしているのですが、そこで使っているWebBrowserでWebページを表示して、その表示ページ上でのSubmitボタンの動作がうまく行かないという現象が出ました。
OS WindowsXpProffesional
開発環境 VS2005プロフェッショナルEdition
アプリケーション Windows アプリ(VB、C#のProjectを混在させて開発中)
WebBrowser VB Project で利用のもの現象
・Webページ(例.Googleのイニシャルページなど)にある「検索」ボタンを押したときに、検索結果ページを返して来ず何のページ遷移も行われない(Yahoo検索でも同様の現象)
・このとき BreakPoint を置いて調べると、WebBrowser の Navigating イベントは立っていない
・ボタンではない、普通の href リンクは正しくジャンプする
・同じOSの別のPC(Note型Pc)において行うと同じアプリケーションでも正しく検索動作を行う、ページ遷移が行われる
・InternetExplorerで表示すればそれらの不具合は起こらないHTML上の該当するボタンの箇所:
<input name=btnG type=submit value="Google 検索" style=height:1.8em>1.このような場合、何が原因として可能性が高そうでしょうか。
2.また、このWebページの動作をそのWindows アプリ上において調べたいときには、そのまま同じVSデバッグ環境上でそのWebページのソースファイル(htmlファイル)をいっしょにデバッグするようなことは可能でしょうか?
VS2005はプロフェッショナルEditionですので、Webアプリも開発可能だとは思うのですが、現在のWindowsアプリケーションにおいてだけ不具合を起こしているため、このデバッグ環境において統合的に調べたく思います。
よろしくお願いします。
回答
-
とりあえず正しく動作するようになったようで何よりです。ただ原因不明というのがおっしゃられるように不安要因ですね・・・
ちなみにリソースはメモリ量とは直接関係ありませんので、いずれにしてもDisposeもしくはusingを使って、確実にリソースを解放するようにして下さい。
.NET Frameworkのソースコード閲覧の件ですが、VS2005でも可能なようです。ひょっとすると何かの役に立つかもしれません。
【.NET】Visual Studio 2005/2008で.NET Frameworkのソースを見ながらステップ実行する
http://www.r-nakai.com/archives/56
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/- 回答としてマーク sk7474 2009年6月11日 5:18
-
これは関係ないでしょうか?
[IE] Input type = file 属性の入力フォームにて submit を行っても Web サーバーから反応がない
http://support.microsoft.com/kb/890981/ja
以下を満たす必要があるため、可能性としてはとても低いと思いますが、ゼロではないと思いました。
・ Input Type="file"を表示ページ内で使用されている。
・ 不具合が発生した状況では、パスの入力が正しくなかった。
・ 不具合が発生しない状況では、パスは正しく入力されている。- 回答としてマーク sk7474 2009年6月11日 5:18
すべての返信
-
-
>trapemiya様
>う~ん、切り分けが難しそうですね。とりあえずWebBrowserはリソースを食うので、確実にDispose()を行っているか確かめてみて下さい。リソース不足かもしれません・・・
>VS2008だとWebBrowserのソースコードへステップインできると思うのですが・・・
リソース不足の可能性については、一応メモリは空きが1G以上あるようなので心配はしていなかったのですが、Dispose()されているかどうかは調べてみます。
「VS2008だとWebBrowserのソースコードへステップインできる」としたらそちらに移行すればデバッグは可能になりそうですね・・・。
ご指導、ありがとうございました。また調べてみます。 -
本日、上記した後、数時間後に、思いついてこんなことをして見ました。
調べて見ましたところ、このアプリケーションには凝ったコンポーネントが使われていて、そこでHook系の動作を使っていたようで、そこでもしかして、と思いまして ~Hook~ と名に持つ箇所をサーチしてその名前でメソッドのあるところすべてでConsole.WriteLine() でそこに来たという印を表示してみた(動作そのものは不変で)ところ、問題だった「検索」ボタンの動作が正しく行われてしまいました!
あれれ??ということで、、ではもう一度前のように、Console.WriteLine() をコメントアウトしてデバッグ環境と非デバッグ環境の両方でやってみたところ、やはり正しく動作してしまうのでしたが、これはGoogle検索でもYahoo検索でも同じでした。
元々正常動作していた方のNote型PCでは正常のまま変わらず。
ということで、原因がわからないまま、問題のあったPCでの動作が正常になってしまい、やったことはこれらだけなのですが、これだとまた異常になるかもしれないので直ったとは言えませんでした。
今後また異常になるかもしれないので引き続きチェックしてみて行きますが、、
もしかしたら、この1日ぐらいの間にWindowsXpProfessionalの自動更新か何か、あるいはセキュリティソフトの自動更新か何かでOSの内部動作が若干変化してしまったせいなのか、とも思ったりもしましたものの、理由はよくわかりません。以降、また報告させて戴きたく。
trapemiya様、ご指導ご親切にありがとうございました。またよろしくお願い致します。- 編集済み VS2005利用者 2009年4月26日 13:56
-
とりあえず正しく動作するようになったようで何よりです。ただ原因不明というのがおっしゃられるように不安要因ですね・・・
ちなみにリソースはメモリ量とは直接関係ありませんので、いずれにしてもDisposeもしくはusingを使って、確実にリソースを解放するようにして下さい。
.NET Frameworkのソースコード閲覧の件ですが、VS2005でも可能なようです。ひょっとすると何かの役に立つかもしれません。
【.NET】Visual Studio 2005/2008で.NET Frameworkのソースを見ながらステップ実行する
http://www.r-nakai.com/archives/56
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/- 回答としてマーク sk7474 2009年6月11日 5:18
-
これは関係ないでしょうか?
[IE] Input type = file 属性の入力フォームにて submit を行っても Web サーバーから反応がない
http://support.microsoft.com/kb/890981/ja
以下を満たす必要があるため、可能性としてはとても低いと思いますが、ゼロではないと思いました。
・ Input Type="file"を表示ページ内で使用されている。
・ 不具合が発生した状況では、パスの入力が正しくなかった。
・ 不具合が発生しない状況では、パスは正しく入力されている。- 回答としてマーク sk7474 2009年6月11日 5:18
-
>TH01様
Input type = file 属性の場合の件、教えて戴きありがとうございました。
調べてみたところ、現在のGoogleやYahooのWebサイト検索のページにはこの属性の部分はないようでした。ただ昨日以前のソースを保存しておかなかったため、その部分が変化したかどうかはわかりません。やはり取っておくべきだったのかもしれません。
一応、IEのバージョンが7であることと、Formに単純にWebBrowserコントロールを一つ貼っただけのサンプルでは現象が出ていなかったことから、おそらくは問題のアプリケーション固有の問題であったとは思われましたが、また引き続きチェックして行きたいと思います。
ご助言、参考になりました。またよろしくお願いします!