2016-10-14 18 views
0

asp.net web applicationがあり、app.configファイルには次のものがあります。app.configからエンドポイントアドレスの値を読み取る方法

<system.serviceModel> 
<bindings> 
    <basicHttpBinding> 
    <binding name="Test" /> 
    <binding name="Test1"> 
     <security mode="Test" /> 
    </binding> 
    <binding name="BasicHttpBinding_IService1" /> 
    </basicHttpBinding> 
</bindings> 
<client> 
    <endpoint address="http://test:90001" 
    binding="basicHttpBinding" bindingConfiguration="Test" 
    contract="Test" name="HTTP_Port" /> 
    </client> 
</system.serviceModel> 

どうすればいいですかget/read endpoint address値はありますか?

私はこのsolutionを訪れましたが、exeファイルのパスを求めていません。どのexeパスファイルがわからないのですか?

答えて

0
 var serviceModel = ServiceModelSectionGroup.GetSectionGroup(ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)); 
     var endpoints = serviceModel.Client.Endpoints; 
     foreach (ChannelEndpointElement e in endpoints) 
     { 
      if (e.Name == "HTTP_Port") 
      Console.WriteLine(e.Address); 
     } 
     Console.ReadLine(); 

あなたはSystem.ServiceModel.Configurationの参照を追加し、serviceModelグループを返すメソッドをGetSectionGroup使用する必要があるのAppConfigからエンドポイントを読むには、あなたが一つだけ、あなたが必要な場合は、そのセクション内のすべてのエンドポイントにアクセスすることができますエンドポイント名で特定のものにアクセスできます。

また、appconfigでポートが無効であると指定した場合、そのポートでURLを読み取っているうちにエラーが表示され、例として追加したと仮定しています。

+0

同じエラー "スタンドアロンexeファイル内で実行していない場合はexePathを指定する必要があります。あなたが言ったことを正確にフォローしています。 – simbada

+0

@simbadaエラーのスタックの詳細を追加できますか..! – inan

関連する問題