我正在尝试为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。感谢。
答案 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中制作的自签名SSL证书应用于端口8020(或您选择使用的任何端口),如下所示:How to: Configure a Port with an SSL Certificate
通过VS.NET运行服务。如果您使用的是WCF测试客户端工具,那么您将看到通过Https公开的本地托管的WCF服务。