Nuget Symbol Server in Visual Studio with ARtifactory is not working

408 views Asked by At

I've set up Artifactory and uploaded some (s)nupkg packages. Then i've added the artifactory feed as described in the documentation. https://jfrog.com/knowledge-base/artifactory-how-to-configure-artifactory-as-symbol-server-and-integrate-with-visual-studio/

This nuget packages can be downloaded from artifactory as expected and all works well well. Yet for some reason, i can't seem to download the pdb symbols.

When i debug my code and look in the modules tab, i can see that the symbols are not loaded. In the log i can find an HTTP_STATUS_BAD_METHOD error:

SYMSRV: HTTPGET: /artifactory/api/nuget/v3/etm-nuget-local-release/ETM.WCCOA.Basics.pdb/6264D37419404FE5A4A845AF52F44612ffffffff/ETM.WCCOA.Basics.pd_ SYMSRV: HttpQueryInfo(HTTP_QUERY_CONTENT_LENGTH): 800C2F76 - ERROR_HTTP_HEADER_NOT_FOUND SYMSRV: HttpQueryInfo: 80190195 - HTTP_STATUS_BAD_METHOD SYMSRV: RESULT: 0x80190195

If i copy the string into my browser and add the address of the artifactory server like this: https://artifactory.etm.at:8445/artifactory/api/nuget/v3/etm-nuget-local-release/ETM.WCCOA.Basics.pdb/6264D37419404FE5A4A845AF52F44612ffffffff/ETM.WCCOA.Basics.pdb

i can download the pdb and then add it manually to the the modules and everything works as expected. So it seems like there's a problem with the automatic download in studio from artifactory. i don't know what's causing this, but the authentication should not be the problem, since i've also tried it with my admin account and the normal nuget packages are fine

1

There are 1 answers

0
Tomer Nir On

if the symbol file does not exist in the cache, the VS debugger tries to download it in 3 different ways/formats:

  1. The actual symbol file (.pdb extension), which is supported in Artifactory. In your case (as it worked for you in your browser), the request path would be: ETM.WCCOA.Basics.pdb/6264D37419404FE5A4A845AF52F44612ffffffff/ETM.WCCOA.Basics.pdb
  2. From a Pointer file (.ptr extension), that is currently not supported in Artifactory. In your case, the request path would be: ETM.WCCOA.Basics.pdb/6264D37419404FE5A4A845AF52F44612ffffffff/file.ptr
  3. From a compressed file (.pd_ extension), which is not supported in Artifactory either. In your case (same as you added in your question in the error part), the request path would be: ETM.WCCOA.Basics.pdb/6264D37419404FE5A4A845AF52F44612ffffffff/ETM.WCCOA.Basics.pd_

It is very common that the debugger fails to download the desired symbol file using the second (.pd_) or third (file.ptr) format (even with other Symbol Servers, like Nuget.org for example), but it should have tried to download the symbol file using the first format, which is the same request that worked for you manually using the browser.

Can you add the full output from the debugger? Or alternatively, can you check in your "artifactory-request.log" which requests you see that contain "/artifactory/api/nuget/v3/etm-nuget-local-release/ETM.WCCOA.Basics.pdb/6264D37419404FE5A4A845AF52F44612ffffffff/" ? Those details would be very helpful.