【发布时间】:2019-02-23 17:50:03
【问题描述】:
几天前我在 AspNet Core 2.1.2 中做了一个简单的 POC,没有任何问题。 我能够从 IIS Express 和本地 IIS(通过 Visual Studio 托管或启动/调试)运行它。
我昨天将项目更新到最新的 AspNet Core 2.1.4,现在似乎无法在我的本地 IIS 中运行任何 AspNet Core 应用程序。
我创建了一个新项目(没有 https)以确保迁移不是问题。
关于我的环境:
- Visual Studio 2017 (15.8.4)
- IIS 10.0.17134.1
- 从这里下载的最新包(即使已经包含在最新的 VS 版本中):https://www.microsoft.com/net/download/dotnet-core/2.1 Downloads
测试用例:
- 创建了一个新的“ASP.NET Core Web 应用程序”-> API -> 无身份验证和无 HTTPS
- NetCore 2.1 版
创建解决方案后,直接在 IIS Express 中运行即可。 选择以应用程序名称命名的其他配置文件也可以(正确启动控制台和服务)
然后我想将它托管在我的本地 IIS 中:
- 添加具有自定义端口 (5555) 和设置为解决方案文件夹的物理路径的新网站(bin/obj/program.cs/...)
- 创建后,浏览该站点会引发“配置错误”:正常,没有可用的 web.config。
- 然后我在 VS 中右键单击我的项目,选择“属性”和“调试”
- 我这样创建一个新的配置文件: Profile
- 我创建了一个包含以下内容的 web.config 文件(并将在我更改运行配置文件时进行转换): Web.config
- 项目未“正确设置”(与我之前使用 AspNet Core 2.1.2 的 POC 一样正确)
问题:
- 如果我尝试通过 IIS 浏览网站,出现错误 500
- 如果我尝试使用“IIS”配置文件调试解决方案,则会出现如下错误: Startup error
- 所有 HttpFailure*.html 文件都是空的 (0kb)
- 事件查看器中没有错误
- 启用后 IIS 日志文件中没有错误
- 当参数 stdoutLogEnabled 设置为 true 时没有日志文件(通过不同于 IIS 的配置文件启动时除外,但仍然没有错误)
测试
我试过了:
- 重启我的电脑
- 以管理员身份启动 VS
- 在适用于“所有人”和所选 IIS 池用户的情况下授予对文件系统的完全权限
IIS Express 和“控制台”配置文件仍然有效。
EDIT1 :我还卸载了所有内容并尝试恢复到 2.1.2 但没有成功(仍然使用最新的 VS)
【问题讨论】:
-
运行网站的 IIS 应用程序池是否设置为无托管代码运行?您是否在 IIS 服务器上安装了正确的 .Net Core?
-
没有效果,但是我试了没有成功。根据docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/…中的第7点
-
您是否在服务器上安装了所有 .Net Core,例如 .NET Core Hosting Bundle。
-
是的,我确实关注了这篇文章(太多次)。这是我下载的(有问题的图片):i.stack.imgur.com/bypNH.png
-
服务器是否在 64 位下运行?如果没有,您可能还需要安装 x86 的东西。
标签: c# asp.net iis asp.net-core asp.net-core-2.1