首页 > 解决方案 > 边缘案例:您能否将 Net.Core 3.1 配置为在与 Asp.Classic 相同的文件夹中运行?

问题描述

我正在考虑逐步将一个巨大的 Asp.Classic(3K 文件)迁移到 Net.Core 3.1(即逐个文件夹迁移)。我们已经发现了共享会话的问题,并且不想去并行站点(但如果没有简单的解决方案,可能会结束去那里)。

合并的 Web.Config 中的一行(在下面的 <-- --> 中)确定是加载 Asp.Classic 还是加载 Net.Core。

    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
      <handlers>
        <!--<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />-->
      </handlers>
        <aspNetCore processPath="dotnet" arguments=".\WebApplication1.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    </system.webServer>

我意识到用 C++ 编写的 ISAPI 过滤器是一种可能性(以一种简单的方式:如果请求中有 .asp,则转到 Asp.Classic,否则传递给 Net.Core)。在走那条路之前有什么选择吗?

标签: c#web-configiis-8httphandlerisapi

解决方案


据我所知,如果你想在同一个 IIS 网站上托管经典的 asp 和 asp.net 核心,你应该修改你的处理程序映射,使经典的 asp 处理程序位于 asp.net 核心模块之上。

详情,您可以参考以下步骤:

1.打开IIS管理控制台,选择handler mapping:

在此处输入图像描述

2.单击排序列表:

在此处输入图像描述

3.将经典asp比aspnet core上移

在此处输入图像描述


推荐阅读