asp.net core 錯誤定位 & vs2017 遠程調試部署在centos上的asp.net core程序


         前言

     程序運行中會出現各種BUG。 排除BUG有三種方式。

一、訪問頁面直接報錯誤信息

     出於安全,服務器是關閉這個功能的。在centos上可以用 命令設置環境變量來解決:   export ASPNETCORE_ENVIRONMENT=Development

二、console輸出

   console.WriteLine(" hello");

三、日志

  使用組件 NLog.Web.AspNetCore 來實現 寫入文件、console、db、email等 

  https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-2

三、遠程調試

 有時候必須在服務器上調試代碼。比如做微信公眾號開發,需要做一些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也重啟一下再試。

 

--------------------- 本文來自 soband_xiang 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/soband_xiang/article/details/82914195?utm_source=copy 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM