vs2017 远程调试部署在centos上的asp.net core程序(通过附加程序的方式)

                                                                      前言

       有时候必须在服务器上调试代码。比如做微信公众号开发,需要做一些url回调, 此时无法在开发电脑上做调试。所以远程调试代码就很有必要了。经过2个小时摸索,顺利实现。 (注意:用jexus时无法远程调试,因为jexus隐藏了dotnet进程,它把dotnet作为自己的子进程,所以无法附加dotnet进程.)

1.在vs2017中设置centos服务器ssh连接信息

     菜单 工具-》选项    跨平台-- 连接管理器,如下图,添加ssh服务器

2.在centos服务器上安装unzip软件

   调试器第一次附加程序时要下载一些zip格式的软件包,需要解压,因此要安装unzip

    在centos上运行命令: yum install -y unzip zip

3.编译程序,上传服务器并运行

  a. debug模式下编译程序,将程序dll文件和对应的.pdb文件上传到服务器。  (dll和pdb一定要是同时生成的,否则不匹配无法命中断点

      注意,.net core程序需要做一些修改:

     1)https功能实现要在.net core程序内部实现

     2)443端口启用也要指定

  b. 终端执行 dotnet xxx.dll 运行程序

 4.通过附加到进程实现远程调试

   vs2017点菜单  调试-》附加到进程

选择dotnet进程,点附加

选managed,确定,此时vs2017就处于调试状态了,可以设一个断点。如果断点无法设置,可以看看输出窗口里的提示信息,根据提示信息一般可以解决问题。如果找不到原因,把centos上的dotnet程序重启一下,vs2017也重启一下再试。

  有一次,点确定后,一直显示 正在启动调试适配器·,很久不消去,反复启动多次都是这样。我猜测可能是在下载vsdbg,因为网速较慢,所以启动就比较慢,后来就放在那里,然后去睡了个午觉,醒来后,再重新启动调试,就好了。 

猜你喜欢

转载自blog.csdn.net/soband_xiang/article/details/82914195
今日推荐