我们刚刚在VS2019 CE(在Windows Server 2012 R2计算机上部署)下构建了.NET Core Web应用程序,但是在尝试将其部署到IIS时遇到了一些问题。
(编辑)将其发布到我们的IIS,回收应用程序池(作为很好的措施),甚至重新启动IIS下的“默认网站”,它一直坐在那里加载直到超时最终超过了价值,我们得到以下信息:
这很麻烦,因为IIS页面本身并没有给我们提供更多帮助,即使启用了stdout日志记录,它似乎也没有写入任何日志(已尝试提供绝对路径和相对路径,但可能仍缺少某些东西/仍在查看某些东西?显然,日志将对您有很大帮助)。
我尝试创建一个应用程序,然后从VS使用文件夹发布无济于事。我也尝试过(首选方式),将其直接发布到我们的IIS。发布个人资料,看起来像这样(但不幸的是,结果非常相似):
WebPublishMethod: MSDeploy
LastUsedBuildConfiguration: Release
LastUsedPlatform: Any CPU
SiteUrlToLaunchAfterPublish: http://localhost:80/Visualiser
LaunchSiteAfterPublish: True
ExcludeAppData: False
TargetFramework: netcoreapp2.0
SelfContained: true
MSDeployServiceURL: localhost
DeployIISAppPath: Default Web Site/Visualiser
SkipExtraFilesOnServer: False
MSDeployPublishMethod: InProc
EnableMSDeployBackup: False
RuntimeIdentifier: win-x64
IIS下的应用程序池设置为“无托管代码”,并且我还确认“启用32位应用程序”设置为False。我还在项目* .csproj文件下添加了<AspNetCoreModuleName>AspNetCoreModuleV2</AspNetCoreModuleName>
,因为它没有以其他方式找到该模块(但我不认为那应该太相关了?)。
任何帮助都将受到赞赏。谢谢!
编辑2:现在,我已经开始使用标准输出日志记录(通过更改IIS应用程序池使用的帐户)。最初,我们得到了MS-ASPNETCORE-TOKEN does not match the expected pairing token
,此问题通过在项目中添加UseUrls()
来解决。但是,解决这些问题之后,我们从日志中得到的只是以下内容,这只会使我们更深入地研究兔子洞:
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]
User profile is available. Using 'C:\Windows\system32\config\systemprofile\AppData\Local\ASP.NET\DataProtection-
Keys' as key repository and Windows DPAPI to encrypt keys at rest.
Hosting environment: Production
Content root path: C:\inetpub\wwwroot\Visualiser
Now listening on: http://localhost:16120
Application started. Press Ctrl+C to shut down.
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost/Visualiser
最后但并非最不重要的一点是,我们的Program.cs
设置当前看起来像这样:
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseKestrel()
.UseUrls("http://*:80")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseApplicationInsights()
.UseIISIntegration()
.UseStartup<Startup>()
.Build();