我发现了一个奇怪的问题NetCore,当您在服务器上运行应用程序时,堆栈跟踪没有行号,所以不添加行号。我使用创建了一个console应用程序dotnet new console,添加了以下代码:
using System;
namespace bar2
{
class Program
{
static void Main(string[] args)
{
try
{
throw new InvalidOperationException("some error");
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
稍后我使用运行应用程序 dotnet run
上面的代码将打印:
System.InvalidOperationException: some error
at bar2.Program.Main(String[] args)
Run Code Online (Sandbox Code Playgroud)
请注意,如果在linux上执行,则没有行号(文件夹中有pdb文件)。
我怎样才能解决这个问题?对于生产应用程序而言,真的很难复制该错误,因为每次我都不知道文件行号时,我只会看到错误...
NetCore Info .NET命令行工具(2.1.200)
Product Information:
Version: 2.1.200
Commit SHA-1 hash: 2edba8d7f1
Runtime Environment:
OS Name: ubuntu
OS Version: 16.04
OS Platform: Linux
RID: ubuntu.16.04-x64
Base Path: /usr/share/dotnet/sdk/2.1.200/
Host (useful for support):
Version: 2.1.1
Commit: 6985b9f684
.NET Core SDKs installed:
2.1.200 [/usr/share/dotnet/sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.1 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.1 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.0.7 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.1 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
Run Code Online (Sandbox Code Playgroud)
我还尝试设置了“仅pdb”的调试和发布模式。
小智 4
进入要查看堆栈跟踪行号的项目的“属性”窗口。
单击构建“垂直选项卡”。
选择“发布”配置。
通过以下评论实现:
欲了解更多信息,请查看以下链接: