2011-01-18 1 views
1

VS 2010 및 .NET 4.0에서 WCF 서비스를 개발 중입니다.app.config의 xml 서비스 선언에서 appseting 키를 읽는 방법

app.config 파일을 만들 때 서버의 기본 주소를 한 번 지정하고 싶습니다.

내가 같은 appconfig가 섹션으로 선언했습니다

<appSettings> 
    <add key="base_address" value="net.tcp://localhost:5050/Service1/"/> 
</appSettings> 
내가 같은 서비스/호스트/baseaAddressses에 해당 키를 참조 할 수있는 방법을 알고 싶습니다

:

<service 
    name="WcfService_callbacks_tcp_auth_username.Service1" 
    behaviorConfiguration="beh_auth"> 
    <host> 
     <baseAddresses> 
     <add baseAddress="!!!here_the_key!!!"/> 
     </baseAddresses> 
    </host> 
</service> 

그리고 다음과 같은 클라이언트/끝점 섹션에서 :

<client> 
    <endpoint address="!!!here_the_key!!!" binding="netTcpBinding" 
      bindingConfiguration="NetTcpBinding_IService1" contract="Service1.IService1" 
      name="NetTcpBinding_IService1"> 
      <identity> 
       <certificate encodedValue="..." /> 
      </identity> 
    </endpoint> 
</client> 

어쨌든 이것을 수행 할 수 있습니까?

감사합니다.

답변

1

상자 밖으로 나올 수 없습니다. 당신이 필요로하는 서비스 측면에서 -

어느 쪽이든 당신은

<service 
    name="WcfService_callbacks_tcp_auth_username.Service1" 
    behaviorConfiguration="beh_auth"> 
    <host> 
     <baseAddresses> 
     <add baseAddress="net.tcp://localhost:5050/Service1"/> 
     </baseAddresses> 
    </host> 
</service> 

가 또는 코드에서 app.config에서 읽을 당신의 WCF의 설정에 명시 적으로 기본 주소를 지정하고 WCF 코드에서 클라이언트 측 (샘플로 설정) 당신의 ServiceHost.AddServiceEndpoint()를 호출 :

string customBaseAddress = ConfigurationManager.AppSettings["base_address"]; 

YourServiceClient proxy = 
    new YourServiceClient("NetTcpBinding_IService1", // endpoint name in config 
          customBaseAddress);   // custom URL 

당신은 app.config 내부에 또 다른 구성 설정을 참조 할 수 없습니다 - 닷넷 설정 시스템은 단지를 지원하지 않습니다.

+0

그건 ... 흥미 롭습니다. XAML이 지원하기 때문에 그렇게 말합니다. 스타일을 선언하고 참조 할 수 있습니다. 나는 같은 기술을 적용하고 싶었다. 귀하의 답변에 감사드립니다. – JoanComasFdz

+1

@unexpectedkas : 예, XAML은 .NET 구성이 아닙니다. 여러면에서 훨씬 앞선 것입니다. –

관련 문제