我有一个ASP .Net Core 2.1 Web API,已将其部署到我们最近购买的新服务器(运行Windows Server 2016 Standard)。该API在我的开发PC和我们的旧服务器(运行Windows Server 2012 R2)上均可完美运行。但是在这台新服务器上,我收到此错误:
500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.
我记得一年前也曾在尝试使其运行在我们的旧服务器上而苦苦挣扎。最终我确实将它投入使用,但是我不记得自己做了什么!有什么方法可以获取有关此错误的更多信息?我已经检查了新服务器上的Windows事件查看器,那里什么也没有。另外,尽管我在 web.config 中有 stdoutLogEnabled =“ true” ,但它没有生成日志-我已经创建了 \ logs \ stdout 路径,以便文件夹确实存在...
我在 Startup.cs 中也有 app.UseDeveloperExceptionPage(); ,但是我没有得到更多有关简单的500个内部服务器错误的信息
这是我的web.config的样子:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\PropWorx.API.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</location>
</configuration>
<!--ProjectGuid: cfa62a1f-c5f6-43f8-bcbe-04068e40b803-->
我还安装了 Microsoft .NET Core 2.1.1-Windows Server Hosting 和 Microsoft .NET Core Runtime-2.1.1 (均为x86)和x64)。
就像我说的那样,它可以在我的开发PC和旧服务器上使用,因此在新服务器上一定是配置问题。除了500 Internal Server Error之外,还有什么方法可以获取更详细的错误信息?谢谢...
答案 0 :(得分:0)
各种原因都可能导致此问题。
如果仅在浏览器中发生这种情况(使用curl或邮递员),则可能是飞行前请求错误,那么您将需要修改UrlScan.ini(我假设在Windows 2016上未更改)在以下路径(C:\ Windows \ System32 \ inetsrv \ urlscan)中,将选项添加到[AllowVerbs]。
如果没有,请确保您遵循Microsoft文档中提供的步骤:
您可能需要安装Visual C++ 2015 Redistributable on the server
要获取日志,请更改“ IncludeScopes”:true,在appsettings.json日志记录部分中,还要检查事件查看器。
希望您会发现这很有用。