最近刚入职 ,带我得导师发给我一堆项目,什么云端和医院端,各种wcf服务、window服务和一些公共类库来回调用。搞得是迷迷糊糊,晕头转向。反正是一脸大萌比。。。
不过经过几个日日夜夜得不停奋战,大致框架终于搞明白了。。
待看到wcf安全得时候又是引用了一些封装好得类库,还有一些IServiceBehavior、IEndpointBehaviorI和IContractBehavior等接口得实现类,还有一些自定义dbcontext,分表分库代码实现等等等等。对于其中得执行流程又是不明所以。
最后决定要去调试一番,为啥这时候才想来调试,主要是觉得发布到服务端得代码调试很费劲(主要是因为前边说了各种服务,公共类库还有一些消息队列,总之框架太过错综复杂)。
我看之前有同事调试是在远程服务器上下载了远程调试工具进行调试,我这里主要是调试wcf服务,怎么远程调试请看中文文档。
我感觉有点复杂,没有采用这种方法。以下是我得解决方案:
第一步:将远程服务器发布得代码拷贝下来发布到自己本地电脑得iis中,将其中配置文档中localhost全改为远程服务ip地址;
第二步:打开想要调试的类库的解决方案重新生成;然后将dll拷贝到本地iis中发布的服务的bin文件夹中,替换原来的类库(主要为了保持文档符号一致);
第三步:管理员身份vs2017打开解决方案附加进程到对应iis服务的w3wp.exe;在想要断点的地方打上断点(前提是程序得能走到那里)
然后用postman等请求工具请求服务后,刚才打得断点就会命中了!!!
最后说一下,一些苦于不知道怎么调试abp源码或者其他框架源码的程序猿可以参考此方法。道理一样得。。。