如何本地调试测试环境的代码


1. 本地环境没问题,上了测试出问题

相信很多朋友都有我这样类似的遭遇,明明程序代码,配置文件都一样,挪了一个窝就出问题,你说气人不,既然问题出了那怎么快速解决呢? 对,就是用调试,但程序部署在 centos 上,送一个 visualstudio 上去也不现实,在这种限制级条件下还想调试怎么办呢?不错,可以上远程调试,然后就很快查到了测试机器中的某一个环境变量搞错了,事情的来龙去脉搞清楚了,接下来就看看怎么实现 local 到 centos 的 远程调试。

1) 测试代码

为了方便演示,我就在 Action 中读取 strategy 环境变量。


    public class HomeController : Controller { public IActionResult Index() { ViewBag.strategy = Environment.GetEnvironmentVariable("strategy"); return View(); } } 

2) 安装 SSH

要远程调试,需要在远端机安装 SSH,因为后面附加进程调试 就要借助 SSH 打通。


yum install openssh-server unzip curl

安装完成后,就能看到 22 端口已启动


[root@localhost data]# netstat -tlnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1126/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 3037/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1739/master tcp6 0 0 :::22 :::* LISTEN 1126/sshd tcp6 0 0 ::1:631 :::* LISTEN 3037/cupsd tcp6 0 0 ::1:25 :::* LISTEN 1739/master 

3) 程序的发布配置

发布配置上,第一个要确保是 debug 版本,第二个要确保是 可移植模式 (Portable), 如下图:

图片名称

4) 使用附加进程调试

在菜单栏依次选择:Debug -> Attach To Process,然后填写 ssh 需要的各种信息,如下图:

图片名称

点击 Connect 后,就能看到远端机器的 dotnet程序 进程号,选择该进程进行附加,在 Select Code Type 中选择 Nanaged (.NET Core for Unix)即可,如下图:

图片名称

5) 顺利调试

在 浏览器中键入: http://192.168.142.130/Home/Index ,可以看到我的 C# 代码被命中,也顺利的拿到了远端机器的 环境变量,问题也就迎刃而解。

图片名称

 

 

引自一线码农的文章:https://www.cnblogs.com/huangxincheng/p/13924326.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM