我正在使用.Net的Scriptmanager向我的客户端javascript公开一个Web服务,如下所示:
<asp:ScriptManager ID="scriptMgr" runat="server">
<services>
<asp:servicereference Path="RmUiControlDataSVC.svc" />
</services>
</asp:ScriptManager>
在我的javascript中,我可以这样称呼它:
var service = new RmUiControlDataSVC();
当我从本地服务器运行它时,它工作正常,我可以运行其中的方法。当我使用http:
远程部署并连接到我的网站时,它也会运行。(在我的网站http://myserver/msftqa/RmMain.aspx上工作)但是,当我尝试使用{{1}连接到同一个应用程序时出现问题}(https://mysite.com/msftqa/RmMain.aspx)。现在当我尝试访问服务的方法时,我得到了一个
503服务不可用
通过Firebug进行检查发现我的Svc正在尝试使用https:
而不是http:
绑定,并且无法找到该服务。这是web.config的相关部分
https:
有什么方法可以告诉服务在通过https连接时使用 <service name="Company.App.RM.RmUiControlDataSVC">
<endpoint address="" behaviorConfiguration="Company.App.RM.RmUiControlDataAspNetAjaxBehavior"
binding="webHttpBinding" contract="Company.App.RM.RmUiControlDataSVC" />
</service>
但是当我使用https:
连接时仍然可以使用它?
答案 0 :(得分:1)
通过http和https公开WCF意味着您需要两个端点。您可以以声明方式或以编程方式配置:
http://netpl.blogspot.com/2010/05/how-to-programmatically-configure-ssl.html