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服务器

asp.net core 错误定位 &  vs2017  远程调试部署在centos上的asp.net core程序

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端口启用也要指定

asp.net core 错误定位 &  vs2017  远程调试部署在centos上的asp.net core程序

b. 终端执行 dotnet xxx.dll 运行程序

 4.通过附加到进程实现远程调试

   vs2017点菜单  调试-》附加到进程

asp.net core 错误定位 &  vs2017  远程调试部署在centos上的asp.net core程序

选择dotnet进程,点附加

asp.net core 错误定位 &  vs2017  远程调试部署在centos上的asp.net core程序

选managed,确定,此时vs2017就处于调试状态了,可以设一个断点。如果断点无法设置,可以看看输出窗口里的提示信息,根据提示信息一般可以解决问题。如果找不到原因,把centos上的dotnet程序重启一下,vs2017也重启一下再试。

--------------------- 本文来自 soband_xiang 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/soband_xiang/article/details/82914195?utm_source=copy

上一篇:Ubuntu 16.04+GTX970 黑屏无法安装解决方法


下一篇:Windows 10+Ubuntu 16.04在MBR分区上安装双系统(转)