У меня есть служба Windows .NET, которая вызывает cdb.exe для анализа аварийных дампов. Я хочу автоматически загружать символы с http://msdl.microsoft.com, когда это необходимо, используя аргумент:
-y srv*c:\symbols*http://msdl.microsoft.com/download/symbols
Если я запускаю приложение как консольное приложение, оно работает должным образом и загружает необходимые символы для каждого дампа.
Проблема в том, что когда я запускаю приложение как службу Windows, символы не загружаются, и, если я включаю symnoisy, в журнале вывода cdb у меня есть запись для каждого символа, в которой говорится, что символ не был найден в http://msdl.microsoft.com
Итак, я проверил это с помощью сниффера, и самое забавное, что при работе в качестве службы не делается никаких запросов к серверу символов Microsoft.
погуглите немного, я обнаружил, что я не единственный, кто столкнулся с этой проблемой, и кажется, что проблема заключается в том, что при запуске приложения в качестве службы Windows оно использует библиотеку winHTTP для HTTP-запросов. , вместо wininet, который, как мне кажется, является корнем проблемы: http://support.microsoft.com/kb/238425
Итак, я не знаю, почему cdb не может подключиться к серверу символов ms с помощью библиотеки winHTTP, и мне нужен способ заставить cdb использовать wininet по умолчанию.
У кого-нибудь есть идея обходного пути к этой проблеме?