C# 发布dot net core 2应用程序后启动应用程序时出错
在IIS 7.5上发布.net core 2应用程序后,我遇到以下错误: 启动应用程序时出错C# 发布dot net core 2应用程序后启动应用程序时出错,c#,asp.net-core,.net-core,iis-7.5,C#,Asp.net Core,.net Core,Iis 7.5,在IIS 7.5上发布.net core 2应用程序后,我遇到以下错误: 启动应用程序时出错 有没有办法强迫dot net core提交准确的错误消息而不是此类一般消息?您可以尝试通过控制台直接在IIS服务器上启动应用程序 dotnet myapp.dll 您应该会看到一个更详细的错误。我的问题只是IIS没有权限写入应用程序文件所在的文件夹 这是一个非常糟糕的错误 希望它能帮助别人,不要在上面浪费太多时间。我发现这个链接很有用:。总之: 在web.config的aspNetCore元素中,将s
有没有办法强迫dot net core提交准确的错误消息而不是此类一般消息?您可以尝试通过控制台直接在IIS服务器上启动应用程序
dotnet myapp.dll
您应该会看到一个更详细的错误。我的问题只是IIS没有权限写入应用程序文件所在的文件夹 这是一个非常糟糕的错误
希望它能帮助别人,不要在上面浪费太多时间。我发现这个链接很有用:。总之:
web.config
的aspNetCore
元素中,将stdoutLogEnabled
属性更改为true
一旦完成,不要忘记禁用日志记录 部署后,当我在我们的环境中发现错误时,我遵循了以下步骤
服务器:Windows Server 2016
IIS版本:10.0
步骤1:检查所有配置是否最新
步骤2:验证Cors配置。我们已经启用了cors,允许的列表是配置的一部分
我能用这两个步骤解决问题
部署后,它将主要与appsettings.config一起使用。确保配置正确。希望这能有所帮助。不要沮丧,因为错误没有给出任何线索。要获得错误,有一种简单的方法
打开命令提示符
导航到映射到IIS的已发布文件夹位置
键入dotnet yourApplicationDllName.dll
现在开始http://localhost:5000 或https://localhost:5001. 这将打开您的应用程序
做你的事。您将在命令提示符控制台中获得错误
当一些关键版本延迟时,这种方法可以为我节省几次时间
干杯如果将应用部署到共享主机,则无法通过控制台运行。因此,我建议执行以下步骤:
打开web.config
更改stdoutLogEnabled=true
创建一个日志文件夹(不幸的是,默认情况下AspNetCoreModule不会为您创建该文件夹。如果您忘记创建日志文件夹,事件查看器将记录一个错误,提示:警告:无法创建stdoutLogFile\?\YourPath\logs\stdout\u timestamp.log,错误代码=-2147024893。)
值“.\logs\stdout”的“stdout”部分实际上引用的是文件名,而不是文件夹。这有点让人困惑
再次运行请求,然后打开\logs\stdout.*.log文件
玩得开心;)李>
注意–在完成故障排除后,您将希望关闭此选项,因为这会影响性能。我认为第一个答案应该对您有所帮助。可能的补充:注意,如果您的应用程序编译为exe,则不需要包含dotnet
,只需执行myapp.exe
,或者双击exe文件即可运行myapp.exe
。它将崩溃,在ConsoleProperty上显示启动异常。如果您在wwwroot中运行网站,IIS将拥有权限
<aspNetCore processPath=".\myapp.exe"
stdoutLogEnabled="true" <!-- this'n -->
stdoutLogFile=".\logs\stdout" />