2011-07-14 177 views
0

使用WCF時,web.config中有一段如下。以編程方式編輯System.Servicemodel值?

<system.serviceModel> 
    <services> 
     <service name="abc"> 
     <endpoint /> <---this 
     </service> 
    </services> 
</system.serviceModel> 

是否可以編輯以編程方式標記的區域?

我可以看到有一個sytem.serviceModel命名空間,但是比IM有點失落等。

感謝

回答

3

如果你想在運行時更改這些參數可以覆蓋ServiceHost.OnOpening() 例如改變端口:

protected override void OnOpening() 
{ 
    foreach (ServiceEndpoint endpoint in Description.Endpoints) 
    { 
     string uriString = string.Format("{0}://{1}:{2}{3}", 
      endpoint.Address.Uri.Scheme, 
      endpoint.Address.Uri.Host, 
      endpoint.Address.Uri.Port + _basePort, 
      endpoint.Address.Uri.LocalPath); 

     endpoint.Address = new EndpointAddress(uriString); 
    } 

    base.OnOpening(); 
}