如何将运行在https:下运行的.Net Web服务公开给javascript?

时间:2012-04-27 20:50:01

标签: asp.net web-services .net-4.0

我正在使用.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:连接时仍然可以使用它?

1 个答案:

答案 0 :(得分:1)

通过http和https公开WCF意味着您需要两个端点。您可以以声明方式或以编程方式配置:

http://netpl.blogspot.com/2010/05/how-to-programmatically-configure-ssl.html