我正在编写ASP.Net WebApi 2(5.0)应用程序,我在自定义XML序列化方面遇到了一些问题 - 在请求体的成功反序列化(未调用控制器)后,POST请求挂起。我试图调试这个但是一旦我退出反序列化方法,调试器就不会向我显示任何代码。请求本身无处可寻(在IIS Express进程终止后,在Fiddler中显示504)。
进一步调查显示WebApi NuGet包中没有包含pdbs。我搜索了几个调试符号源,我设法找到除System.Net.Http.Formatting之外的所有WebApi库的调试符号,这些符号缺失:
Assembly title: System.Net.Http.Formatting (88a1bd8d3344b5df289577425c0314e7f521e88a)
Assembly file version: 5.0.11001.0
Assembly version: 5.0.0.0
SymSrv: http://referencesource.microsoft.com/symbols/System.Net.Http.Formatting.pdb/2F953AE40BC041E5AD078905E6D532FB1/System.Net.Http.Formatting.pdb (not found)
SymSrv: http://msdl.microsoft.com/download/symbols/System.Net.Http.Formatting.pdb/2F953AE40BC041E5AD078905E6D532FB1/System.Net.Http.Formatting.pdb (not found)
SymSrv: http://srv.symbolsource.org/pdb/Public/System.Net.Http.Formatting.pdb/2F953AE40BC041E5AD078905E6D532FB1/System.Net.Http.Formatting.pdb (not found)
看起来该库的pdb根本不可用。如果我在自托管下运行相同的代码,它可以完美地工作(但仍然不能完全调试)。我关闭了web.config中的所有处理程序(在web主机下),除了一个:
<handlers>
<clear />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
问题仍然存在。
有没有办法调试/跟踪WebApi序列化代码以了解问题所在?
答案 0 :(得分:1)
您可以尝试Microsoft Reference Source Code Center并查看它们是否可用。
符号服务器为http://referencesource.microsoft.com/symbols
按照说明逐步完成.Net Framework的源代码,而不仅仅是代码。
您还可以download local copies各种版本的源代码。