WCF Windows服务主机 - WCF Http请求映射

时间:2013-07-11 14:03:26

标签: .net wcf windows-services wcf-binding wcf-hosting

我正在Windows服务托管容器中托管一个wcf rest服务,并且遇到了将来自不同dns名称的http请求映射到给定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/requestinstanceservice 要么 http://dns2.mydomain.com/requestinstanceservice

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

0 个答案:

没有答案