exception - IIS下如何将dotnet core webapp切换到开发模式
问题描述
我有一个dotnet core 3.1
托管在 下的应用程序IIS
,因此环境变量设置如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\MyApp.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="OutOfProcess">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
<environmentVariable name="ASPNETCORE_URLS" value="https://dev.mycompany.com/MyApp" />
<environmentVariable name="LOCAL" value="false" />
</environmentVariables>
</aspNetCore>
</system.webServer>
</location>
</configuration>
当抛出错误时,我看到:
鉴于应用程序部署在 IIS 下,我该怎么做才能显示实际异常?
解决方案
在 Startup.cs 中,进行以下更改:
if (env.IsDevelopment())
{
// Following enables exception page
app.UseDeveloperExceptionPage();
}
上面的行将只为调试环境启用开发者异常页面。你可以把这条线 app.UseDeveloperExceptionPage(); 在 if 之外总是显示异常和堆栈跟踪。
如果应用已经部署,则无法直接获取异常消息。
如果我可以访问主机,我会做的另一件事。我登录主机并尝试使用 localhost url http://localhost:{port} 访问服务。这会强制 dotnet 假定它是本地开发人员环境,然后显示异常消息。
推荐阅读
- javascript - 为什么套接字会多次发射?
- java - 在回收站视图中绘制线条和圆圈的最佳方法是什么?
- google-maps - Google Cloud Platform 中“错误”图的含义
- axis - OxyPlot:在 LinearColorAxis 上显示最大值/最小值的标签
- javascript - 为什么函数必须被调用两次才能更新钩子状态?
- r - 我如何把它变成一个函数?
- ios - Ionic 3 Video 在 IOS 13.3 中播放 1 秒后暂停
- c++ - 从字符串流中读取具有特定字段宽度的 int
- docker - 使用 docker compose 创建了 apache 服务,但无法通过浏览器访问 apache(httpd)
- python - 如何创建加权图?