Cannot download microsoft symbols when running cdb in a windows service

I have a .NET windows service that is calling cdb.exe to analyze crash dumps. I want to download the symbols from http://msdl.microsoft.com automatically when needed, using the argument:

-y srv*c:\symbols*http://msdl.microsoft.com/download/symbols

If I run the application as a console application, It works as expected and it downloads the needed symbols for each dump.

The problem is when I start the app as a windows service, the symbols are not downloaded and, if I turn symnoisy on, at cdb's output log I have an entry for each symbol saying that the symbol hasn't been found at http://msdl.microsoft.com

So, I've checked it using a sniffer and the funny thing is that no request is made to the microsoft symbols server when running as a service.

Googling a little, I've found that I'm not the only one with this issue and it seems that the problem is that when running an application as a windows service, it is using winHTTP library for http requests, instead of wininet, which I think is the root of the problem: http://support.microsoft.com/kb/238425

So, I don't know why, cdb is not able to connect to ms symbols server using winHTTP library and I need a way to force cdb use wininet by default.

Anyone has an idea of a workaround to this issue?

7
задан Thomas Weller 17 March 2017 в 14:59
поделиться