VisualStudio—Remote Debug

11 篇文章 0 订阅

主要用来解决本地调试没问题发布到远端后却报错的项目。

一、Windows Debug Windows

本文叙述采用的VS2022。

①远端(windows服务器)安装远程调试器

远端(windows服务器)安装过程省略,详见官方参考链接设置远程调试器

②本地配置远程调试

无论什么样的程序进行远程调试的大前提:

方法1:

目标代码编译文件和本地项目编译文件所在的目录一模一样。

例:

若本地调试的文件地址:D:\RemoteDebugCode\ConsoleApp_netframework_APITest\bin\Debug也应把上面的文件夹直接复制到远端(windows服务器)上。

方法2:

将本地项目发布到远端(windows服务器)服务器上.

总之要始终保证两个计算机上编译文件版本相同,否则启动远程调试后会进不去断点。

本地调试示例:

参考链接

a.调试普通Console程序

方法1:

①本地项目debug文件如下

②远端也应存在相同的文件,如下:

③接着远端启动调试工具后本地配置远端调试:

.net framework 4.6.2 项目配置方式:

.net 6 项目配置方式:

④本地代码打上断点,本地启动调试,即可进入远端调试。

方法2:

建了一个简单的HelloWorld项目,简单几句代码,加上断点。

发布debug到远程服务器。

双击HelloWorld.exe,运行程序

点击菜单【调试】->【附加到进程】,打开如下页面

①如果开启了身份验证,则默认即可,否则选择【无身份验证】

②填写完后直接回车,不要点击后面的【查找】按钮。在可用进程中会列出服务器端的进程列表。

③可选,如果服务器端进程较多,可以在此筛选,支持模糊查询。找到HelloWorld.exe,双击改进程或点击附加按钮,和附加本地进程一致。随便输入什么字符,回车,可以看到进入了断点。

b.调试IIS发布的程序

调试IIS发布的程序本地项目不用修改项目的debug配置,直接attach process即可,详见下面示例。

如果是调试发布到IIS中的网站,则需要附加的进程为w3wp.exe。

可能会遇到如下情况:

如果看不到该进程,则需考虑如下操作:

①访问该网站,休眠状态有时候找不到该进程。

②勾选“显示所有用户的进程”,再刷新。

若部署多个网站可通过tiltle等信息辨别是哪个。

方法1:

1.保证目录结构一致

本地代码文件结构如下:

D:\RemoteDebugCode\xxxx

debug文件目录:D:\RemoteDebugCode\xxx\xxx\bin\Debug\net6.0

远端必须存在相同的debug文件目录:D:\RemoteDebugCode\xxx\xxx\bin\Debug\net6.0

2.发布IIS网站

将该远端debug文件目录发布为IIS网站。

3.在远端开启远程调试工具

4.浏览该IIS网站

在远端即可。

5.本地配置好远程调试打上要调试的断点,并附加进程 ,最后启动项目

点击attach后远端调试器会有如下提示:

6.操作3打开的网站并做相应操作使进入4的断点开始调试。

点击上面的execute进到断点,如下

注意事项:

1.当调试时,修改了本地代码就一定要rebuild后将相应修改的dll替换到2的远端debug文件目录下,再启动调试。否则会出现进不去本地断点的情况。

2.调试部署的iis网站一定要注意当前网站只有你在浏览,要是有别人在浏览也会进到你打的断点里影响调试效率。

方法2:

还没试过,后续更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值