2011-07-14 218 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(); 
}