服务器上部署的C#编写WebService出现问题,需要排查,但没有对应的源码,只能在服务器端想办法调试。
IIS中部署的WebService服务,其应用程序池对应操作系统中的w3p.exe进程(高版本IIS对应的进程是w3wp)。可以直接在操作系统的任务管理器进程或详细信息页签中找到用户名为WebService使用的应用程序池名称的w3p.exe,记录其PID。
使用dbSpy打开要调试的WebService物理文件夹bin内的程序集,点击t调试->附件到进程菜单,打开窗口,在其中找到对应PID的w3p.exe进程附加调试。
需要注意的两点:
1)根据WebService是64位还是32位选择对应的dnSpy;
2)有时候要调试的程序集即便附加也断不下来,这时得换个调用该程序集的程序集附加试试。
参考文献:
[1]https://github.com/dnSpy/dnSpy
[2]https://blog.csdn.net/zwx_lucky/article/details/38580059