如何配置 IIS 将无效的 http 请求转发到 .net core
How to configure IIS to forward invalid http requests to .net core
我已将一个旧的 Web 应用程序从使用 Cassini 的非常旧的自定义实现的 Web 主机上托管到 IIS 中托管的 .net core 2.2。
由于旧服务器是自我实现的,因此它不会拒绝 IIS 拒绝的某些请求。
具体来说,问题是 POST 请求没有 body 也没有 Content-Length header,有 Transfer-Encoding header "chunked"。绝对没有理由不在那里使用简单的 GET 请求,但情况就是这样。
请求是从一些客户正在使用的旧插件发送的,我们无法让他们将其升级到发送有效 GET 请求的较新版本。目前 IIS 正在拒绝带有 502 代码的请求。因此,我们需要为这些客户端维护一个旧版本的服务器。
我正在寻找一种方法来配置 IIS 以将这些请求转发到 .net 核心 Web 应用程序,尽管这些请求无效并在那里处理它们(在没有 IIS 的 Kestrel 上测试时,结果按预期返回)。
谢谢
问题出在充当反向代理的 IIS,因为我使用了进程外托管。一旦我切换到进程中托管,请求就直接发送到服务器,问题就解决了。
https://weblog.west-wind.com/posts/2019/Mar/16/ASPNET-Core-Hosting-on-IIS-with-ASPNET-Core-22
我已将一个旧的 Web 应用程序从使用 Cassini 的非常旧的自定义实现的 Web 主机上托管到 IIS 中托管的 .net core 2.2。
由于旧服务器是自我实现的,因此它不会拒绝 IIS 拒绝的某些请求。
具体来说,问题是 POST 请求没有 body 也没有 Content-Length header,有 Transfer-Encoding header "chunked"。绝对没有理由不在那里使用简单的 GET 请求,但情况就是这样。
请求是从一些客户正在使用的旧插件发送的,我们无法让他们将其升级到发送有效 GET 请求的较新版本。目前 IIS 正在拒绝带有 502 代码的请求。因此,我们需要为这些客户端维护一个旧版本的服务器。
我正在寻找一种方法来配置 IIS 以将这些请求转发到 .net 核心 Web 应用程序,尽管这些请求无效并在那里处理它们(在没有 IIS 的 Kestrel 上测试时,结果按预期返回)。
谢谢
问题出在充当反向代理的 IIS,因为我使用了进程外托管。一旦我切换到进程中托管,请求就直接发送到服务器,问题就解决了。 https://weblog.west-wind.com/posts/2019/Mar/16/ASPNET-Core-Hosting-on-IIS-with-ASPNET-Core-22