0

asp.netwebformsWebサイトと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アドレスを持つ別のサーバーでホストされます。

明らかに、正しいWCFサービスを指すようにURLをハードコーディングすると、チェックを外したままにすると面倒な問題になります。したがって、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を詳細に説明しているポイントです:任意の構成ソースからのWCFバインディングと動作の取得

これも役立つ場合があります:app.configで定義されたWCFエンドポイントをプログラムで列挙します

于 2012-08-27T12:50:30.193 に答える