クラッシュダンプを分析するためにcdb.exeを呼び出している.NETWindowsサービスがあります。引数を使用して、必要に応じてhttp://msdl.microsoft.comからシンボルを自動的にダウンロードしたいと思います。
-y srv*c:\symbols*http://msdl.microsoft.com/download/symbols
アプリケーションをコンソールアプリケーションとして実行すると、期待どおりに動作し、ダンプごとに必要なシンボルがダウンロードされます。
問題は、Windowsサービスとしてアプリを起動すると、シンボルがダウンロードされず、symnoisyをオンにすると、cdbの出力ログに、シンボルがhttp:/で見つからなかったことを示す各シンボルのエントリがあります。 /msdl.microsoft.com
それで、私はスニファを使用してそれをチェックしました、そして面白いことは、サービスとして実行されているとき、マイクロソフトシンボルサーバーに要求がなされないということです。
少しグーグルすると、この問題を抱えているのは私だけではないことがわかりました。問題は、アプリケーションをWindowsサービスとして実行するときに、wininetではなくwinHTTPライブラリをhttpリクエストに使用していることです。私は問題の根本だと思います:http ://support.microsoft.com/kb/238425
したがって、理由はわかりません。cdbはwinHTTPライブラリを使用してmsシンボルサーバーに接続できず、デフォルトでcdbにwininetを使用させる方法が必要です。
誰かがこの問題の回避策のアイデアを持っていますか?