Asp.net core 2.1 Web App 无法在 IIS 上正确呈现

Posted

技术标签:

【中文标题】Asp.net core 2.1 Web App 无法在 IIS 上正确呈现【英文标题】:Asp.net core 2.1 Web App not rendering correctly on IIS 【发布时间】:2019-06-26 22:11:17 【问题描述】:

是时候进行大型发布了!好吧,直到 IIS 开始发挥不错。我和一位同事花了 6 个多小时尝试将 ASP.NET Core 2.1 Web 应用程序发布到内部 IIS 服务器。经过多轮错误代码和调整,我们能够让应用程序在某种程度上托管在 IIS 上,但有一个大问题,渲染有点偏离。语言无法解释它的外观。

What it looks like 这就是正在渲染的内容。我注意到的一件事是,当您在页面上执行 ctrl-u 时,页面代码就在那里。

它应该是这样的:https://i.stack.imgur.com/dv6xN.png

如果有人知道发生了什么,请提供任何帮助!

【问题讨论】:

使用浏览器开发工具或 Fiddler,调试请求/响应。 【参考方案1】:

这是一个简单的修复,只是我的一个错误!希望这有助于所有未来的 Asp.net 核心开发人员准备发布。通过进一步调查,很明显 Web 应用程序正在执行,只是渲染不正确。很明显,引导程序没有被击中,这导致了所有的渲染错误。

在 Asp.net 核心样板代码中,_Layout.cshtml 页面包含环境标记中的所有链接和脚本,如下所示:

    <environment include="Development">
      <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
      <link rel="stylesheet" href="~/css/site.css" />
    </environment>
    <environment exclude="Development">
      <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/css/bootstrap.min.css" asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css" asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" />
      <link rel="stylesheet" href="~/css/site.min.css" asp-append-version="true" />
    </environment>

只需删除这些环境标签,就可以点击正确的链接和脚本,现在一切都可以正常呈现了。

【讨论】:

【参考方案2】:

在不查看源代码的情况下确定此处的问题有点困难,但可能您只是在显示导航栏,并且它正在扩展以适应整个屏幕,从而也扭曲了图标的顺序。确保它是在 IIS 上运行的整个应用程序。

【讨论】:

以上是关于Asp.net core 2.1 Web App 无法在 IIS 上正确呈现的主要内容,如果未能解决你的问题,请参考以下文章

在 ASP.NET Core 2.1 Web API 中实现分页

在 ASP .NET Core 2.1 Web Api 中启用 CORS

在 ASP.NET Core 2.1 Web 客户端中存储不记名令牌的位置

ASP.NET Core 2.1 MVC - 无法设置从 Web api 响应接收到的 cookie

如何在 asp.net core 2.1 中使用 net.tcp 服务

如何使用 fetch 将 FormData 从 javascript 发送到 ASP.NET Core 2.1 Web API