【问题标题】:Routing WCF service from one server to another server using IIS使用 IIS 将 WCF 服务从一台服务器路由到另一台服务器
【发布时间】:2021-03-05 20:11:41
【问题描述】:

我在我们的一台 Windows 2019 服务器上的 IIS 上托管了 WCF 服务,它工作正常。现在根据我们的新架构,我们不应该将此服务直接暴露给外部。就像任何用户试图从外部(通过互联网)访问我的 WCF 服务一样,它不应该直接访问我的服务器以获取响应,而是请求应该首先到达 DMZ 区域 Windows 服务器,然后我需要从这个 DMZ 服务器路由到我们的实际托管我的 wcf 服务的 Windows 服务器。

为了实现这一点,我尝试在我的 DMZ 服务器上使用 IIS URL 重写。如果请求来自外部,它将首先访问 DMZ 服务器 IIS,然后我使用 URL 重写将服务路由到托管服务的实际服务器。但是这种方法不起作用我收到 404 和 502 错误。下面是入站规则截图。

如何实现从一台 windows 服务器到另一台 windows 服务器的 WCF 服务路由?

【问题讨论】:

  • 您是否尝试将请求从 HTTP 路由到 https?在 iis 中启用失败的请求跟踪,并在删除敏感信息后提供日志。确保在 iis 中安装应用程序请求路由功能。 docs.microsoft.com/en-us/iis/troubleshoot/…

标签: wcf iis service routes


【解决方案1】:

1)安装应用请求路由功能。

2)打开iis->应用请求路由->服务器代理设置->启用代理

3)在web.config文件中添加如下代码:

<system.serviceModel>
     <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
 </system.serviceModel>

4)打开iis,选择站点(有公共绑定)

5)双击URL重写。

6)使用从右侧操作窗格中打开的“添加规则...”模板,创建一个新的反向代理规则。

7) 在反向代理模板中添加内部服务器或站点 IP 或服务器名称。

您可以选择是否执行 SSL 卸载。如果您选中此选项,则无论原始 Web 请求如何,对内部服务器的所有请求都将通过 HTTP。如果所有请求都在受信任的网络中,这有助于提高性能和 SSL 绑定。如果两个 Web 服务器之间的网络路径不完全受信任且不安全,请取消选中此项。

接下来,启用出站规则。您可以为出站规则输入您的友好公共 URL。

点击确定保存规则。

您可以参考以下链接了解更多详情:

https://weblogs.asp.net/owscott/creating-a-reverse-proxy-with-url-rewrite-for-iis

WCF using Reverse proxy

【讨论】:

  • 非常感谢您的回复。我正在尝试将请求从 https 路由到 https。进行这种路由是否可行/可能?我以与文章中提到的相同方式感到疲倦(weblogs.asp.net/owscott/…),但我收到 HTTP 错误 502.3 - 网关错误。
  • 以上是我添加反向代理规则后的DMZ服务器网站配置文件。如有错误,请检查并纠正我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-18
  • 1970-01-01
  • 2020-11-26
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
相关资源
最近更新 更多