Несколько экземпляров собственной службы WCF - PullRequest
0 голосов
/ 14 октября 2010

У меня есть служба, и она размещена в приложении Windows. В приложении служба запускается как показано ниже

public void Initialise()
{
    BasicHttpBinding binding = new BasicHttpBinding();

    ServiceHost host = new ServiceHost(typeof(SampleType));
    host.AddServiceEndpoint(typeof(ISampleService), binding, "http://localhost:6732/Sample/Service/");

    host.Open();
}

Теперь, если я запускаю несколько экземпляров приложения, я получаю сообщение об ошибке

HTTP не может зарегистрировать URL http://localhost:6732/Sample/Service/. Другое приложение уже зарегистрировал этот URL с помощью HTTP.SYS.

Может ли несколько экземпляров прослушивать один и тот же URL?

Ответы [ 2 ]

0 голосов
/ 13 сентября 2012

Вы не сможете создать несколько экземпляров службы, которая все будет получать данные, отправленные на определенный адрес / порт, Windows должна направлять входящий сетевой трафик на определенный сокет, прослушивающий этот порт.

Я подозреваю, что то, что вы пытаетесь сделать, лучше всего достигается с помощью дуплексного связывания, такого как netTcpBinding. В этом случае все ваши клиенты будут подключаться к серверу, отправляющему сообщение, а затем ждать обратного вызова с этого сервера.

0 голосов
/ 14 октября 2010

Вам нужно запустить его на другом порту, попробуйте рандомизировать номер порта и проверить, используется ли порт в первую очередь перед запуском службы.

Вы можете запустить только один экземпляр на одном порту, поэтомурешение состоит в том, чтобы изменить порт для каждого экземпляра, в зависимости от того, как вы это делаете.

6732 - это порт, поэтому можно увеличивать значение в каждом экземпляре или рандомизировать его.

http://localhost:6732/Sample/Service/

Также проверьте эти два сообщения S0, которые могут помочь:

WCF: несколько привязок Net.TCP, один и тот же порт, разные IP-адреса

Может2 службы WCF прослушивают один и тот же порт?

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