将.net核心应用发布到iis后操作超时?

时间:2020-07-08 15:06:31

标签: c# iis .net-core publish

我们刚刚在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();

0 个答案:

没有答案