1

我在 Windows 服务托管容器中托管 wcf 休息服务,并且在将 http 请求从不同的 dns 名称映射到给定的 wcf 端点时遇到问题。似乎请求是通过 IP 地址映射的,并且 dns 名称被忽略了。我一直在研究是否可以在作为 Windows 服务托管时为给定的 http wcf 端点添加“主机标头”。我知道这是 IIS 用于使用单个 IP 地址将多个网站 dns 名称明确映射到不同网站的机制。对于作为 Windows 服务托管的 wcf http 端点,这种映射机制或类似机制是否可用?

例如,如果我在同一个端口上配置了两个端点:

<system.serviceModel>
    <services>
        <service name="RequestInstanceService">
            <endpoint address="http://dns1.mydomain.com/requestinstanceservice" binding="webHttpBinding"   contract="MyService.IRequestInstanceService" >
            </endpoint>
        </service>
        <service name="CentralKeyingAuthorityService">
            <endpoint address="http://dns2.mydomain.com/ckaservice" binding="webHttpBinding"  contract="MyService.ICentralKeyingAuthorityService" >
            </endpoint>
        </service>          
    </services>
    <behaviors>
        <endpointBehaviors>
            <behavior>
                <webHttp />
            </behavior>
        </endpointBehaviors>
    </behaviors>
    <bindings />
</system.serviceModel>

我希望能够清楚地将来自 dns1.mydomain.com 的请求映射到 requestinstanceservice,并将来自 dns2.mydomain.com 的请求映射到 ckaservice。如果托管在 IIS 中,我的假设是我可以为 dns1.mydomain.com 和 dns2.mydomain.com 设置主机标头,以将请求定向到适当的网站(wcf 主机)。

由于我在 Windows 服务主机中托管这些 wcf 服务,因此行为似乎有点不同。似乎 dns 组件无关紧要,因为我可以使用任一 dns 名称到达 requestinstanceservice 端点:

http://dns1.mydomain.com/requestinstanceservicehttp://dns2.mydomain.com/requestinstanceservice

有人可以帮助我了解如何使映射与众不同,以便在映射中考虑 dns 名称吗?

4

0 回答 0