VisualStudio—Remote Debug

2023-11-19

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

一、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:

还没试过,后续更新。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VisualStudio—Remote Debug 的相关文章

随机推荐

  • sparkstreamming 消费kafka(2)

    spark streaming提供了两种获取方式 一种是同storm一样 实时读取缓存到内存中 另一种是定时批量读取 这两种方式分别是 Receiver base Direct 一 Receiver base Spark官方最先提供了基于R
  • 使用Jenkins+Gitlab集成Flutter自动化打包(Android),并发布到蒲公英

    本文记录一下使用Jenkins Gitlab集成Flutter自动化打包的过程 在集成时 Jenkins和Gitlab是已经搭建好的 并且Gitlab上已经上传了Flutter项目 Jenkins自动构建打包 安装Gitlab插件 因为Je
  • Js 关于收藏本页和设置首页

  • 交换机二三层转发原理简单总结

    首先二层转发是基于MAC地址转发 三层转发基于IP地址转发 但是这并不意味着仅仅依靠IP地址就能转发 三层转发是建立在二层的基础上的 而仅仅依靠MAC地址是能够转发的 另外 由于二三层转发基于MAC地址 IP地址 FDB表 MAC地址学习
  • 2019年感:忆往昔考博岁月,看今朝花样年华

    人生的际遇谁又能说清楚 就像师范类毕业的女神梦想着当一名老师 结果却阴差阳错穿上了警服 而本应该奔波北上广深的程序员 却成为了一名大学老师 两条平行线的男女 却结为了连理 再如 一心准备中科院却因英语差一分惜败 几乎裸考的学校却可能结出果实
  • 多模态预训练模型CLIP:中文版本开放使用

    公众号原文 关注公众号 获取一手论文咨询 多模态预训练模型CLIP 中文版本开放使用 中文项目地址 https github com real brilliant chinese clip in tensorflow 01 背景 CLIP是
  • 【车联网原型系统|四】adhoc组网+frp内网穿透

    物联网原型系统导航 车联网原型系统 一 项目介绍 需求分析 概要设计 https blog csdn net weixin 46291251 article details 125807297 车联网原型系统 二 数据库 应用层协议设计 h
  • 【Python三大结构练习4】

    目录 1 哥德巴赫猜想 2 判断是否回文 3 Add ings 4 身份证号掩盖出生日期 5 敏感词过滤 1 哥德巴赫猜想 题目描述 一个大正偶数总可以分解为两个质数之和 试编写程序验证哥德巴赫猜想 输入一个正偶数 输出该偶数的质数和分解
  • 使用 Spring 2.5 注释驱动的 IoC 功能

    基于注释 Annotation 的配置有越来越流行的趋势 Spring 2 5 顺应这种趋势 提供了完全基于注释配置 Bean 装配 Bean 的功能 您可以使用基于注释的 Spring IoC 替换原来基于 XML 的配置 本文通过实例详
  • Selenium脚本转化Java代码

    Selenium录制的脚本可以转换Java JUnit单元测试 可以使用Java项目管理工具Maven统一运行 从Selenium脚本中导出Java代码 按照如下步骤 使用Java运行Selenium脚本 使用Chome导出Java脚本必须
  • iframe与vue

    iframe与vue 在vue中使用 创建一个vue页面 iframe的src属性绑定需要的页面 放在template中 在iframe种调用vue的方法 a页面url为a demo com a页面中iframe引用的b页面url为b de
  • laravel8框架-开发实战项目总结(一)

    一 laravel框架的目录结构 app 应用目录 保存项目中的控制器 模型等 bootstrap 保存框架启动的相关文件 config 配置文件目录 database 数据库迁移文件和数据填充文件 public 应用入口文件index p
  • JAVA8 String 面试练习 与 intern()

    idea debug 查看内存信息 public class StringTest4 public static void main String args System out println 2293 System out printl
  • 深入浅出 - 公钥、私钥和数字签名最通俗的理解

    一 公钥加密 假设一下 我找了两个数字 一个是1 一个是2 我喜欢2这个数字 就保留起来 不告诉你们 私钥 然后我告诉大家 1是我的公钥 我有一个文件 不能让别人看 我就用1加密了 别人找到了这个文件 但是他不知道2就是解密的私钥啊 所以他
  • live-server的使用

    本地开发常常需要搭建临时的服务 第一时间我们会想到用http server 但现在流行修改文件浏览器自动刷新hot socketing 热拔插 如live reload 若想浏览器自动打开项目 用opener 现在live server实现
  • 国密SM2 Https服务器搭建--全网最完整方案

    在密码协议层面 国密标准定义了sm2密钥交换协议 IPSec技术规范 SSL 技术规范三个密码协议 在实际应用系统中为保障系统完整性 保密性 不可抵赖性三方面 应采用规范协议实现安全性保障 不要采用自定义密码协议 本文通过江南天安开源国密o
  • java实现将整数转化为中文大写金额

    转载请注明出处 http blog csdn net xiaojimanman article details 49584567 http www llwjy com blogdetail 741867855ccfe191504c83b3d
  • windows修改远程端口

    windows修改远程端口 一 修改注册表 关于远程桌面的注册表的位置 由于系统版本的不同 文件存在的位置也不同 核心是寻找名称类似CurrentControlSet的目录下的PortNumber文件 其是远程桌面端口的端口配置 1 按 w
  • golang: Logrus实现日志打印

    Github https github com sirupsen logrus golang标准库的日志框架非常简单 仅仅提供了print panic和fatal三个函数 对于更精细的日志级别 日志文件分割以及日志分发等方面并没有提供支持
  • VisualStudio—Remote Debug

    主要用来解决本地调试没问题发布到远端后却报错的项目 一 Windows Debug Windows 本文叙述采用的VS2022 远端 windows服务器 安装远程调试器 远端 windows服务器 安装过程省略 详见官方参考链接中设置远程