使用Cassini进行相同服务的多个WCF端点

时间:2010-07-22 19:44:58

标签: silverlight wcf endpoints

我正在尝试为Silverlight配置WCF服务以使用http或https,它适用于IIS,但不适用于Visual Studio(Cassini)内置的Web服务器。 web.config system.serviceModel的services部分是:

<services>
<service behaviorConfiguration="RhymeDotBehavior" name="RhymeDot.Service.Root">
    <endpoint name="RhymeDotHttp" address="" binding="basicHttpBinding"
                  bindingConfiguration="RhymeDotBinding" contract="RhymeDot.IRootService"/>
    <endpoint name="RhymeDotHttps" address="" binding="basicHttpBinding"
                  bindingConfiguration="RhymeDotBindingHttps"
                  contract="RhymeDot.IRootService">
        <identity>
             <dns value="localhost"/>
        </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>

如果我删除了第二个端点,那么Cassini一切正常。当我检测到“localhost”时,如果需要,我可以轻松调整客户端指定的服务URL。我已经根据silverlight app url将svc url调整为http或https。这适用于IIS,但不适用于Cassini。感谢。

2 个答案:

答案 0 :(得分:2)

内置于Web服务器(Cassini)的Visual Studio不支持SSL: Does the ASP.NET Development Server (a.k.a. Cassini) support SSL?

IIS Express(beta)即将推出,但确实如此。

答案 1 :(得分:0)

你可以从技术上通过VS.NET调试器(Cassini)完成这项工作,但你必须做一些事情。

  1. 使用您的计算机的全名(即mymachinename)通过命令行工具或IIS生成自签名测试证书。
  2. 为使用macinename而不是“localhost”dns的WCF配置添加基址。所以https://mymachinename:8020/Services/MyWCFTest可能是基地址。
  3. 将步骤1中制作的自签名SSL证书应用于端口8020(或您选择使用的任何端口),如下所示:How to: Configure a Port with an SSL Certificate

  4. 通过VS.NET运行服务。如果您使用的是WCF测试客户端工具,那么您将看到通过Https公开的本地托管的WCF服务。