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
