asp.net core 2.1面向.Net Framework并在IIS上运行而无需托管捆绑

时间:2018-09-28 08:06:58

标签: c# asp.net iis asp.net-core iis-7

我有一个.NET Core 2.1应用程序,目标框架为.Net Framework 4.6.1。我想将其托管在IIS上,但我不想安装.net核心托管包。是否可以在IIS上运行此应用程序而无需安装.Net Core Hosting Bundle?我尝试在本地IIS上运行此页面,但得到:

  

HTTP错误500.19-内部服务器错误请求的页面不能为   由于该页面的相关配置数据为   无效。

大多数答案都建议安装.Net Core Hosting Bundle来解决此错误,但是由于不允许将其安装在远程服务器上,所以我想知道是否还有其他方法?

2 个答案:

答案 0 :(得分:0)

如果您在软件包中定位了asp.net core 2.1(如标题所示),那么您基本上是在定位需要在计算机上安装的Runtime Framework。

答案 1 :(得分:0)

使用ASP.NET Core 2.1创建一个针对.NET Framework的MVC应用程序,并将该应用程序发布到文件夹中。

然后,我设法通过集成管道和.NET CLR v4.0将应用程序池托管在IIS中,如下所示:

enter image description here

重要:接下来,您需要确保应用程序池标识用户(IIS AppPool\{ApplicationPool Name}对您的发布文件夹具有Read and execute权限。

如果您检查已发布应用程序的web.config,则会注意到AspNetCoreModule处理程序已被引用。需要AspNetCoreModule才能在IIS中托管应用程序,因为它充当反向代理。因此,您需要安装ASP.NET Core托管软件包才能安装此模块。

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/aspnet-core-module?view=aspnetcore-2.1