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

640?wx_fmt=png

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

640?wx_fmt=png

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

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

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

640?wx_fmt=png

选择dotnet进程,点附加

640?wx_fmt=png

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

原文地址https://www.cnblogs.com/voiceangel/p/9733809.html

 
  

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg