C# 发布dot 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

在IIS 7.5上发布.net core 2应用程序后,我遇到以下错误:

启动应用程序时出错


有没有办法强迫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" />