トップ回答者
IISにWebアプリケーションの本番環境作成について

質問
-
IISに、開発したWebアプリケーションを配布して、環境を作成しました。
Visual Web Developer環境のデバッグモードにて、正常にテストできていました。
画面遷移も、問題なく動作しました。
IISにて設定したurlを起動して、該当のaspxを動作した際、ldap連携で、データを取得し、画面に検索した情報を表示する画面を動作した時、検索後の処理で、画面が固まってしまっています。
ldap検索の検索結果は、正常に返却されているようですが、あと画面表示で固まっています。LDAP連携する際に、定義等が、必要でしょうか?
確認です。また、何処の箇所まで、動作した確認したいのですが、良い方法を教えてださい。
デバッグの実行が、IISの場合、できないようなので、良い方法を教えてください。
よろしくお願いします。環境は以下の通りです。
システム : Wicrosoft Windows 2000 Service Pack4
DB : SQL Server 2005Microsoft Visual Web Developer 2005 Express Edition
NET.Framework 2.0
開発言語 VB
ASP.NET 2.0
回答
すべての返信
-
IIS 上で動作する Web アプリケーションの応答が停止する場合やエラーになる場合にトラブルシューティングする方法があるURLを教えて貰いました。
http://support.microsoft.com/kb/929117/ja
この中にある、以下の事象です。
- ハングアップ : IIS や Web アプリケーションの応答が停止する、または正常時に比べて遅延する。
応答がない状態です。
ダンプ ファイルを取得する方法が、説明されています。ダンプを取得する以外に方法は、ないでしょうか?
考えられるエラー要因について、わかるようでしたら、教えてください。
どうぞよろしくお願いします。
以上 -
こんにちは。
Visual Web Developer が無くても CLR Debugger が使えると思います。
Web.config でデバッグを有効にして、デバッガを ASP.NET のワーカープロセスにアタッチします。
そして、ハングアップしている時にブレークするか、怪しいところにブレークポイントを設定してからステップ実行するかすれば、ハングアップした場所で止まると思います。
あるいは、Debug Diagnostic Tool で情報を採取してみてみると良いと思います。
参考までに紹介しますと、私のサイトにもハングアップの調査方法が書いてますので、参考にしていただけたら幸いです。
プログラミング徹底解説 ~ IIS システムデバッグ ハングアップ
お役に立てましたら幸いです。
---------------------------------
だどさん http://keicode.com/ -
たどさんへ
>あるいは、Debug Diagnostic Tool で情報を採取してみてみると良いと思います。
指摘のとおり、Debug Diagnostic Tool で、「ログ」、「ユーザ」ダンプを取得しようとしていますが。
まだ、取得できていません。
Debug Diagnostic Tool v1.1をtoolは、使用しました。
資料採取は、指摘の通り、定義しました。
ログの採取~自動採取を実行しましたが、ハングしている状態ですが、ユーザダンプが0で採取されていないようです。
指定したurlも取得したいurlを定義しました。
参考ご意見を、よろしくお願いします。
以上
-
こんにちは。
# こちらは皆さんのフォーラムですので、ご指名いただかないほうが他の識者の方が
# 素早く回答していただけるかもです。
通常は、ハングの検出用に指定した URL のレスポンスが無い状態ならば、Debug Diagnostic Tool がハングを適切に検出して情報を採取するはずなのですが・・・
とりあえず、情報がなぜ採取できないかという点はおいておき、ハングしている状況なのにダンプが採取されていない場合、Tool メニューの Create IIS/COM+ Hang Dump を選択していただきますと、ダンプファイルを含む情報が採取できるはずです。試していただけますでしょうか?
ダンプ採取の際に、可能ならば、念のため5分くらいおいて 3 回ほど採取されると良いと思います。
お役に立ちましたら幸いです。
-----------------------------------
だどさん http://keicode.com/ -
ダンプの取得は、相変わらずできませんが、「LDAP認証でWEB発行でうまくいかない。」のFAQを見つけました。
LDAP認証でWEB発行でうまくいかない。
http://social.msdn.microsoft.com/Forums/ja-JP/aspnetja/thread/1aa3daf9-52d8-40dc-bb11-1f9ac8a4231d/
DAP認証で、ローカルで開発してうまくいったのですが、WEBサーバーにWEB発行して、仮想ディレクトリーに配置して、
実行すると、指定されたドメインがないか、またはアクセスできません。
↓
解決方法は、以下の様に記述されていました。
web.configとIISの認証の設定で、認証機構の設定ができました。
LDAP以前の問題がありました。
具体的に、web.configとIISの認証の設定をどのように修正、確認すればよいか教えてください。
よろしくお願いします。 -
まずは、「LDAP の検索結果が正常に返却されているようだ」 ということが最初の書き込みにありましたが、その通りだとすると、以前のスレッドに該当しないと思います。(あちらの問題は、そのスレッドで小野さんがおっしゃっているように、そもそも LDAP へのアクセスが出来ないのが問題、ということですから)
表示画面で固まる、ということでダンプなども有効かと思ったのですが・・・。
今一度、CLR デバッガなどで止まっている箇所を正確に把握されると良いと思います。
すると、単に LDAP にアクセスが無いのか、その後、予期せぬところで停止しているのか切り分け可能と思います。
ご参考になりましたら幸いです。
---------------------------------
だどさん http://keicode.com/ -
早速、回答ありがとうございます。
>まずは、「LDAP の検索結果が正常に返却されているようだ」 ということが最初の書き込みにありましたが、その通りだとすると、以前のスレッドに該当しないと思います。(あちらの問題は、そのスレッドで小野さんが おっしゃっているように、そもそも LDAP へのアクセスが出来ないのが問題、ということですから)
指摘の通りです。
LDAP側の状況を、確認してもらったところ、情報WEBサーバへ返却しているようです。
>表示画面で固まる、ということでダンプなども有効かと思ったのですが・・・。
>今一度、CLR デバッガなどで止まっている箇所を正確に把握されると良いと思います。
指摘の通り、どこで、ハングしているのか、、CLR デバッガを使用してみます。
不明点等が、発生したら、再度、FAQしますので、よろしくお願いします。
以上
-
ダンプを取得することができました。
warningで以下の内容でした。
10 client connection(s) in PID-1916__INETINFO.EXE_IIS_In-Process_Applications__full_0dc0_2009-03-06_11-43-41-015_077c.dmp have been executing a request for more than 90 seconds.
ソースも内容をみていますが、以下のところで、ハングしているようです。
~~~~~~ソース 一部~~~~~
Dim entry As New System.DirectoryServices.DirectoryEntry("LDAP://ldap.xxx.xxx.co.jp/o=xxx,c=JP", "", "", DirectoryServices.AuthenticationTypes.None)
Try
Dim search As New System.DirectoryServices.DirectorySearcher(entry)← ここ以降
Dim findvalue As String = TextBox1.Text
System.Diagnostics.Debug.WriteLine(" TEXT1 = > " & findvalue)
search.Filter = "cn=" & findvalue & "*"
System.Diagnostics.Debug.WriteLine(" search = > " & search.Filter)
Dim result As System.DirectoryServices.SearchResult
・
・
・
~~~~~~~~~~~~~~~~~~~~~~~~~
ldap関連のところで、ハングしているように、見えます。
IISとweb.config等の環境周りで、必要な定義等ありましたら、教えてくだい。
どうぞ、よろしくお願いします。
ldapのこのTry以降の箇所をスキップさせたところ、画面は、ハングしていない状態です。
以上
-
原因調査のため、いろいろ、試していますが、まだ、解決しません。
IISで、ハングアップしている状態が、続いています。
ローカルのデバッグ環境では、問題なく動作しています。
原因解明、解決手段、調査方法等のご助言をよろしくお願いします。
原因を絞り込むために、
以下のようにTryの箇所に、算術演算の結果オーバーフローを発生させました。
デバッグのローカルで起動してテストすると、正常に、Catch ex As Exceptionを行い、
画面表示しています。
IISで、同様に確認すると、ハングアップしています。
画面表示を行う際、内部でテーブルを作成して表示する処理にしています。
dtの設定が問題なのでしょうか?
原因を絞りこみたいので、ご助言をお願いします。
以上
~~~~~~~~~~~~~~~~~~~~~~~
count = 0
Try
count =1/count
Dim search As New System.DirectoryServices.DirectorySearcher(entry)
Dim findvalue As String = TextBox1.Text
System.Diagnostics.Debug.WriteLine(" TEXT1 = > " & findvalue)
search.Filter = "cn=" & findvalue & "*"
System.Diagnostics.Debug.WriteLine(" search = > " & search.Filter)
Dim result As System.DirectoryServices.SearchResult
・
・
Catch ex As Exception
GridView1.DataSoure = dt ← ここ
GridView1.DataBind()
・
・
End Try
~~~~~~~~~~~~~~~~~~~~~~~~
-
こんにちは。
すみません、私も手元で試していないので間違っているかもしれませんが、
とりあえず、思ったことを書かせていただきますと・・・
(1) LDAP を使うには基本的に、認証の設定をしないといけないと思うのですがその点は大丈夫でしょうか?
#Windows 統合認証、基本認証など試して、動きの違いを確認してみてはいかがでしょうか?
(2) ダンプに他に何か情報は取れてないでしょうか?
デバッガでダンプを開いて、
> ~*kbn 100
としますと、全スレッドのスタックバックトレースが見えるのですが、それだとどのようになっていますか?
(3) 0 除算の例外を発生させることで、どの問題を絞り込むのか、よくわかりませんでした。
ダンプをみれば、どのラインで停止していたかわかるはずですので、それをみるのが先だと思います。
お役に立ちましたら幸いです。
--------------------------
だどさん http://keicode.com/ -
だどさん 様へ
ご指摘ありがとうございます。
>(1) LDAP を使うには基本的に、認証の設定をしないといけないと思うのですがその点は大丈夫でしょうか?
#Windows 統合認証、基本認証など試して、動きの違いを確認してみてはいかがでしょうか?
LDAPの認証について、
LDAPのユーザ名、パスワードは、空白にて、対応していました。
ダンプリストで以下のナッセージを表示しました。
Analysis Details
Report for PID-1916__INETINFO.EXE_IIS_In-Process_Applications__full_0dc0_2009-03-06_11-43-41-015_077c.dmp
Type of Analysis Performed Hang Analysis
Machine Name BIZ
Operating System Windows 2000 Service Pack 4
Number Of Processors 1
Process ID 1916
Process Image C:\WINNT\system32\inetsrv\inetinfo.exe
System Up-Time 7 day(s) 17:55:43
Process Up-Time 7 day(s) 17:54:06
このメッセージの意味を教えて下さい。
>(2) ダンプに他に何か情報は取れてないでしょうか?
>デバッガでダンプを開いて、
> ~*kbn 100
指摘のとおり、何かダンプから情報をとりたいのですが、~*kbn 100 は、検索できませんでした。
以下のような情報を得ました。
Client Connections
・
SSL Request False
・
Client Connection State CCS_PROCESSING_CLIENT_REQ
Out of Process ID (WAM) Process 1916
指摘されているような処理情報が取得できませんでした。
>(3) 0 除算の例外を発生させることで、どの問題を絞り込むのか、よくわかりませんでした。
>ダンプをみれば、どのラインで停止していたかわかるはずですので、それをみるのが先だと思います。
ソースのどのラインまで、動作したかを確認するために、TRYのなかで、0 除算の例外を発生させてみましたが、ハングして状態で、ハング箇所が、特定できませんでした。
ダンプを参照したいのですが、取得したダンプでは、ラインまでは、わからない状態です。
皆様、ご助言をよろしくお願いします。
非常に困っています。解決方法のご助言をよろしくお願いします。
マイクロソフトに問題解決のサポートがある場合は、教えてください。
以上
-
こんにちは。
IIS で基本認証を設定して、ドメインの管理者としてログインした場合も同様に動かないでしょうか?
ローカルで動いていらしたのでしたら、ローカルは Windows 統合認証が有効になって動いていて(かつダブルホップの問題も発生しない)、そのために動いていたのではないかと思われますが・・・
ダンプファイルはテキストファイルではなくバイナリの *.dmp ファイルです。デバッガなどでダンプを開きそれを解析するものです。
私のウェブサイトにある程度情報はありますので、よかったら参考にしてください。
IIS システムデバッグ入門 ハングアップ
http://keicode.com/debug/dbg415.php
ハングアップしている時のダンプを見れば、それ以上切り分ける必要もなく、停止しているコードのラインがわかるはずですよ。
ちなみに、マイクロソフトの有償サポートもありますので、こちらの利用も検討してみてはいかがでしょうか?
http://www.microsoft.com/japan/services/support/professional.mspx
こちらの、「オンデマンド」 の 「プロフェッショナルサポート」 を利用して、今回の状況を説明すれば原因究明と対策を提示されると思います。
お役に立ちましたら幸いです。
-----------------------------------
だどさん http://keicode.com/ -
回答あり有難うございます。
ご指摘とおり、対応したいと思います。
>私のウェブサイトにある程度情報はありますので、よかったら参考にしてください。
>IIS システムデバッグ入門 ハングアップ
http://keicode.com/debug/dbg415.php
>ハングアップしている時のダンプを見れば、それ以上切り分ける必要もなく、停止しているコードのラインがわかるはずですよ。
>ちなみに、マイクロソフトの有償サポートもありますので、こちらの利用も検討してみてはいかがでしょうか?
>http://www.microsoft.com/japan/services/support/professional.mspx
マイクロソフトの有償サポートの利用も検討してみます。
有難うございました。
-
# 回答マークがついてますが、ひとこと・・・
こんにちは。
そういうことでしたか。それなら、ダンプ解析ができていたら、ほぼ100%の確率で一発で片付いていましたね。。。残念です。
トラブルシューティングの基本は、思い込みを排除して、ログをしっかり見て問題をひとつひとつクリアにしていくことなのですが・・・
何はともあれ、動くようになってよかったです。
-------------------
だどさん http://keicode.com/ -
返信有難うござます。
>そういうことでしたか。それなら、ダンプ解析ができていたら、ほぼ100%の確率で一発で片付いていましたね。。。残念です。
>トラブルシューティングの基本は、思い込みを排除して、ログをしっかり見て問題をひとつひとつクリアにしていくことなのですが・・・
ご指摘の通りです。
マイクロソフトの有償サポートを紹介していただき、対応依頼しました。
その後、私自身で、ソースを見直して、今回のエラーが発見できました。
ダンプ解析ができていればと、今も思います
>何はともあれ、動くようになってよかったです。
問題解決に、約1ヶ月程、かかってしまいました。 もう少し、早く問題解決できるように、したいと考えていますので、
皆様の協力をよろしくお願いします。