【问题标题】:.netcore 2.1 application deployed to IIS produced an error部署到 IIS 的 .netcore 2.1 应用程序产生错误
【发布时间】:2018-09-26 11:55:37
【问题描述】:

我使用 Angular 模板创建了一个新的 ASP.NET Core 2.1 Web 应用程序。

在 Debug 和 Release 模式下都成功地在本地运行。

创建了一个发布配置文件到文件系统,它成功发布到本地文件夹。

已安装:.NET Core 2.1 Runtime & Hosting Bundle for Windows 然后在 IIS 中,

  1. 创建了一个新的应用程序池 - 使用 .net CLR = "No Managed Code"
  2. 然后在Default Web Site > 创建了新应用程序,它使用我创建的新应用程序池,并指向文件系统,指向在 VS 2017 帮助下发布的已发布目录

当我Browse 到应用程序时,此消息出现在浏览器中

所以在web.config 文件中我更改了environmentVariable 以查看错误

 <aspNetCore processPath="dotnet" arguments=".\WebApplication1.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout">
    <environmentVariables>
      <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
    </environmentVariables>
  </aspNetCore>

然后我看到了错误

我不知道下一步该做什么,我已经尝试在 Stack-overflow 和 Google 上寻找解决方案 herehere 等等。

当我在web.config 中将stdoutLogEnabled 设置为true 时,我会在应用程序的日志中看到这一点

托管环境:生产 内容根路径:C:\prodSites\beedeal 现在收听:http://127.0.0.1:26261 申请开始。按 Ctrl+C 关闭。 警告:Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware3 无法确定重定向的 https 端口。 失败:Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware1 执行请求时发生未处理的异常。 System.InvalidOperationException:SPA 默认页面中间件无法返回默认页面“/index.html”,因为未找到它,并且没有其他中间件处理该请求。 您的应用程序正在生产模式下运行,因此请确保它已发布,或者您已手动构建了 SPA。或者,您可能希望切换到开发环境。

在 Microsoft.AspNetCore.SpaServices.SpaDefaultPageMiddleware.c__DisplayClass0_0.b__1(HttpContext 上下文,Func`1 next) at Microsoft.AspNetCore.Builder.UseExtensions.c__DisplayClass0_1.b__1(HttpContext 上下文)在 Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext 上下文)在 Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext) 在 Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext 上下文)在 Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext 上下文)在 Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.Invoke(HttpContext 上下文)

但没有找到解决方案..

【问题讨论】:

  • 似乎有一些东西试图启动角度开发服务器(package.json > scripts > start 应该调用类似 ng start 的东西)。如果是这样,那就错了。对于生产,必须使用 ng build 构建您的 Angular 应用程序,这将生成由 IIS 交付的静态文件。
  • 默认开启开发者异常页面,不切换环境到dev。看看会发生什么。
  • @ChristophLütjen 我使用了 Visual Studio 发布过程,并且输出文件夹似乎有静态文件,是在通过 Visual Studio 发布过程中创建的,所以我不确定你问什么..跨度>
  • 我对IIS一无所知,我只是在您的错误消息中看到它似乎试图运行ng start。这是错误的,因此您可以检查为什么会发生这种情况。

标签: xml iis .net-core iis-10


【解决方案1】:

关注this,终于成功将应用部署到IIS,

我认为我的非工作尝试的问题是我将新的.net core 站点放在了

Default Web Site IIS 文件夹,对于 .net core 应用程序,这是不允许的(您不能在 default web site 文件夹下混合 .net 核心应用程序和 .net 框架应用程序(这意味着 .net framework 应用程序)) . .net core 应用程序使用不同的配置 + 需要与 no managed code 应用程序池一起运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-10
    • 2015-06-11
    • 1970-01-01
    • 2019-01-08
    • 2020-06-12
    • 2014-10-12
    • 1970-01-01
    • 2011-09-09
    相关资源
    最近更新 更多