在 IIS 中托管 ASP Net Core 应用程序时无限页面加载
Posted
技术标签:
【中文标题】在 IIS 中托管 ASP Net Core 应用程序时无限页面加载【英文标题】:Infinity page loading when host ASP Net Core application in IIS 【发布时间】:2016-07-25 11:34:28 【问题描述】:您好,我的 ASP.Net Core 应用程序出现错误。我在 Azure Cloud 的 Windows Server 2012 上的 dnx451 框架上安装了两个 ASP.NET Core 网站。
当我在浏览器中导航到它们时,它们会无限加载。在它发生之前我安装了HttpPlatformHandler
,因为以下错误,但现在我没有看到任何异常无限加载。
我在安装 HttpPlatformHandler
之前看到的错误。
还有,
-
应用程序正在从 Visual Studio 和 dnx web 成功运行。
在启动中插入日志(发送电子邮件),没有创建日志。
加载页面:
请帮忙,谢谢。
【问题讨论】:
你能分享你的Startup.cs
和project.json
吗?
还有你的 web.config。
对于项目1:web.config web configstartup.cs startup project.json
对于项目 2:startup.cs、web.config、project.json
@blowdart 这是个好主意,但 url 只在一个项目中重写,chrome 理解这个错误
【参考方案1】:
简答
当 IIS 找不到 dnx.exe 时会发生无限加载。当发布无法在其输出中包含运行时时,就会发生这种情况。
解决方案
发布时使用--runtime
标志。
cd Project01
dnvm use 1.0.0-rc1-final -runtime clr <------ Set the active runtime.
dnu build
dnu publish --runtime active <------ Use the runtime flag.
运行时标志提供要包含的运行时文件夹的名称或完整路径,或active
用于 PATH 上的当前运行时。
如果发布输出中仍未包含runtimes
目录,则升级到最新版本的dnu
,因为旧版本中存在错误。
说明
当 IIS 找不到 dnx.exe
时会发生无限加载。当发布无法在其输出中包含运行时时,就会发生这种情况。
这里是检查缺少的dnx.exe
是否导致无限加载问题的方法。
-
发布您的网络应用程序(例如
dnu publish
。)
导航到发布输出目录(例如bin\output\
。)
确保approot\runtimes\..\..\dnx.exe
存在。
以下是发布输出必须包含的关键文件。为了清楚起见,我省略了其他一些重要文件。
\Project01\bin\output\
approot
packages
runtimes <--------------------------------This is sometimes missing.
dnx-clr-win-x64.1.0.0-rc1-final
bin
dnx.exe <---------------------IIS needs to find this.
src
global.json
web
web.cmd
logs
wwwroot <-------------------------------------IIS Physical Path
外部链接
https://github.com/aspnet/Hosting/issues/364#issuecomment-148567294 https://github.com/aspnet/dnx/issues/2858【讨论】:
以上是关于在 IIS 中托管 ASP Net Core 应用程序时无限页面加载的主要内容,如果未能解决你的问题,请参考以下文章
无法在 ASP.NET Core 5.0 下的 IIS 中托管 CoreWcf
在 ServiceFabric 中托管旧版 ASP.NET(不是 ASP.NET Core)
具有个人帐户和托管 ASP.NET Core 的 Blazor WebAssembly 应用程序 - IIS - SQLLocalDB 15.0 找不到指定的资源语言 ID