Редактировать значения System.Servicemodel программно? - PullRequest
0 голосов
/ 14 июля 2011

При использовании WCF в web.config есть раздел, как показано ниже.

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

Можно ли редактировать область, которую я пометил программно?

Я вижу, что есть пространство имен sytem.serviceModel, но кроме этого я немного растерялся.

Ответы [ 2 ]

3 голосов
/ 14 июля 2011

Если вы хотите изменить эти параметры во время выполнения, вы можете переопределить 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();
}
2 голосов
/ 14 июля 2011

В дополнение к ответу Майка Можаева, поскольку ваша служба размещена в IIS, вам потребуется ServiceHostFactory, чтобы получить ссылку на хост службы (или использовать собственный хост).Есть некоторая информация об этом в http://blogs.msdn.com/b/carlosfigueira/archive/2011/06/14/wcf-extensibility-servicehostfactory.aspx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...