直接连接到IIS后面的Kestrel

时间:2018-05-30 20:06:58

标签: c# iis kestrel-http-server

我使用asp.net core 2.0在C#中创建了一个Web应用程序。 此应用程序托管在IIS中,因为这是将其公开到互联网的推荐方式。

我现在正在使用与webapp相同的本地局域网托管一些服务,这需要连接到上面的webappp。我可以连接到公共的iis服务器当然可以工作。但是,是否也可以直接连接到由IIS管理的Kestrel服务器?因此,不要连接到public_ip / somewhere,而是连接到kestrel-local-ip:port / somewhere。优点是:

  • 避免额外跳跃
  • 茶隼应用程序仍由IIS托管和管理,因此不必担心自托管/管理。

在此处阅读文档:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/aspnet-core-module?view=aspnetcore-2.1它声明:“执行附加检查,并且拒绝不是来自模块的请求。”阅读Github repro,这似乎是一个名为“MS-ASPNETCORE-TOKEN”的HTTP头。

这种情况可能会以某种方式出现吗?要直接连接到IIS,还要直接连接到kestrel?

如果有可能,我应该这样做吗?性能提升似乎很大,因为我有很多小的请求,Kestrel可以很好地处理。

1 个答案:

答案 0 :(得分:0)

我已经测试了这种情况。

当APP红est在iis后面时,

  1. 您可以使用netstat命令获取红est进程的“端口”。

  2. 然后卷曲“ localhost:port”,您将收到400错误的请求,还可以获得指示MS-ASPNETCORE-TOKEN令牌的错误日志。

  3. 您可以再次使用MS-ASPNETCORE-TOKEN请求标头卷曲“ localhost:port”。