ASP.NET核心托管 - 500内部服务器错误

use*_*823 13 web-hosting internal-server-error asp.net-core

我正在尝试使用支持ASP.NET Core的托管提供程序发布为ASP.NET Core项目.我收到500内部服务器错误,我认为这是非常常见的.所以,我搜索了互联网和各种论坛,然后我检查了processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%"web.config,他们看起来正确转换processPath="dotnet" and arguments=".\MyApplication.dll".

我还检查了connectionString,它指向正在运行的生产数据库服务器.我通过将connectionString更改为生产数据库并在本地运行项目来确认数据库连接.它有效,我获得了生产数据库访问权限.

我也试图通过在我的Startup.cs中使用以下内容来获取错误信息(无论env如何):

app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
app.UseBrowserLink();
Run Code Online (Sandbox Code Playgroud)

我也在web.config中启用了stdoutLog,但是我没有看到该文件夹​​:

stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout"
Run Code Online (Sandbox Code Playgroud)

我还尝试将launchSettings.json中的applicationUrl和launchUrl更改为我的prod Url,但是这样也没有用.

因此,500内部服务器错误拒绝消失,我仍然没有任何有用的错误消息.该页面只是说:

哎呀.500内部服务器错误启动应用程序时发生错误.

如果有人能在这里帮助我,我真的很感激.

Luk*_*wej 25

我也在web.config中启用了stdoutLog,但是我没有看到该文件夹​​:

stdoutLogEnabled ="true"stdoutLogFile =".\ logs\stdout"

这里有一个技巧-你必须创建两个文件夹logsstdout手动-那时,也只有那么IIS将创建里面的日志文件logs的文件夹(不是stdout因为你可以期望) -不要问我为什么,因为我不知道为什么;)


哎呀.500内部服务器错误启动应用程序时发生错误.

通常,意味着Startup.cs中的配置问题 - 最常见的问题包括数据库本身的问题,迁移问题(如果您使用的是Code First方法),appsettings.js的问题,社交登录凭据的问题(如缺少SecretKey)...

请参阅日志文件.\logs\stdout- 这是查找问题详细信息的最快方法:)


app.UseDeveloperExceptionPage();

app.UseDatabaseErrorPage();

这些将在WebApp完全启动后工作,但在启动应用程序时不会.

  • 只是一个细节:您不必创建文件夹"stdout"(但您需要创建"logs"文件夹) (2认同)

use*_*823 6

感谢卢卡斯的评论。我能够看到日志,它指出“必须提供 ClientId 选项”。问题出在 UserSecrets 上。由于secrets.json仅在开发中可用,因此在生产中没有发现秘密。一旦我的 appSettings.json 中有了秘密,它就工作得很好。

此外,要在本地环境中复制此内容,只需转到项目属性并将环境变量 ASPNETCORE_ENVIRONMENT 更改为“生产”并在本地运行。这将在本地复制 500 内部服务器错误,您将收到错误消息。


小智 5

在 web.config 文件中将 modules="AspNetCoreModuleV2" 更改为 modules="AspNetCoreModule"

并观看此视频 https://www.youtube.com/watch?v=clCR3k6kkD8