0

我有一个 asp.net webforms 网站和一个 wcf 服务。我使用 jQuery 执行与 WCF 服务之间的 AJAX 操作,如下所示:

$.ajax({
    type: "POST",
    url: "192.168.1.24/ServiceMain.svc/" + serviceName,
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    data: "{}",
    cache: true,
    success: function (json)
    {
       //Success operation here
    },
    error: function ()
    {
        //Error operation here
    }
});

现在一切都很好。但是,我希望能够做一个测试和生产环境,两者都将托管在具有不同 IP 地址的不同服务器上。

显然,如果不加以检查,硬编码 URL 以指向正确的 WCF 服务将成为一个乏味的问题。因此,我想知道检索 WCF 服务 URL 的最佳方法是什么。我考虑过使用web.config文件,如下所示:

<%=ConfigurationManager.AppSettings("SomeWCFKey")%>

但是,我不确定如何正确引用我的 web.config 文件中的地址:

<endpoint address="http://192.168.1.24/ServiceMain.svc" 
binding="basicHttpBinding" 
bindingConfiguration="BasicHttpBinding_IServiceMain" 
contract="ServiceMain.IServiceMain" 
name="BasicHttpBinding_IServiceMain" />

任何帮助将不胜感激,谢谢。

4

1 回答 1

1

嗨,我认为您确实想阅读可以通过此代码获得的端点地址

private List<string> GetEndpoints() 
{
     var endpointList = new List<string>();
     var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
     var serviceModel = ServiceModelSectionGroup.GetSectionGroup(config);
      foreach (ChannelEndpointElement endpoint in serviceModel.Client.Endpoints)
     {
         endpointList.Add(endpoint.Address.ToString());
     }
      return endpointList; 
} 

这是详细描述 mroe 的 pont:Getting WCF Bindings and Behaviors from any config source

这也可能对您有所帮助:以编程方式枚举 app.config 中定义的 WCF 端点

于 2012-08-27T12:50:30.193 回答