【问题标题】:How can I expose .Net web service service running under https: to javascript?如何将在 https: 下运行的 .Net Web 服务服务公开给 javascript?
【发布时间】:2012-04-27 20:50:01
【问题描述】:

我正在使用 .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)但是,当我尝试使用https:(https:// mysite.com/msftqa/RmMain.aspx)。现在,当我尝试访问服务的方法时,我得到一个

503 服务不可用

通过 Firebug 检查显示我的 Svc 正在尝试使用 http: 而不是 https: 进行绑定,并且无法找到该服务。这是 web.config 的相关部分

  <service name="Company.App.RM.RmUiControlDataSVC">
    <endpoint address="" behaviorConfiguration="Company.App.RM.RmUiControlDataAspNetAjaxBehavior"
      binding="webHttpBinding" contract="Company.App.RM.RmUiControlDataSVC" />
  </service>

有没有一种方法可以让服务在通过 https 连接时使用 https:,但在使用 http: 连接时仍然可以工作?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 这看起来正是我想要的。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    相关资源
    最近更新 更多