我有:
- 运行 Windows Server 2016 的 EC2 实例,
- 已安装的 .NET Web 主机捆绑包(包括 .NET Core 2 SDK),
- 已安装的AspNetCoreModule,
- IIS10 中的网站和没有托管代码的应用程序池,
-
以下
BuildWebHost
:public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseKestrel() .UseIISIntegration() .UseStartup<Startup>() .Build();
-
此 web.config 用于 ASP.NET Sites 根文件夹中的 Core 2 MVC:
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="dotnet" arguments=".ProjectOutput.dll" stdoutLogEnabled="true" stdoutLogFile=".logsstdout" forwardWindowsAuthToken="false" /> </system.webServer> </configuration>
什么有效:
- 在站点的根文件夹中放置包含任何内容的
index.html
。- 当我从外部网络或计算机访问网站时,文件的内容会正确提供。
什么不起作用:
- 将我发布的 ASP.NET Core MVC 站点放在该站点的根文件夹中,提供 500 内部服务器错误
- 使用
dotnet publish
发布
- 使用
- 此外,也没有记录任何内容。
我可能缺少什么会导致我的项目在没有任何日志记录的情况下无法启动?
我知道我一个小时前发表了评论,但是阅读这个问题时,我认为我遇到了同样的问题。 对我有帮助的是.cs在配置服务方法中从启动中删除以下内容:
Services.AddDeveloperSigningCredential();
我注意到在发布应用程序时,IIS 中的应用程序仍然要求 tempkey.rsa。这很奇怪,因为这个没有与它一起发布。因此,在删除某些代码行后,它都可以正常工作。
还有一个很好的提示,如果你无法找出错误:转到你的应用程序的文件夹。打开命令。并输入:dotnet .NAMEOFSTARTING.DLL
这样,您可以从命令启动网站,并查看可能的错误。