2012-06-15 4 views
0

Я пытаюсь программным образом установить конечную точку для соединения WCF.WCF: конечная точка программирования

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

 Uri wsBaseAddress = new Uri("http://localhost:27198/"); 

     ServiceHost host = new ServiceHost(typeof(ServiceClient), wsBaseAddress); 

     WSHttpBinding wshttpbinding = new WSHttpBinding(); 

     host.AddServiceEndpoint(typeof(IService), wshttpbinding, "ServiceClient"); 
     host.AddServiceEndpoint(typeof(IService), wshttpbinding, 
      "http://localhost:27198/Service.svc"); 

     host.Open(); 

EDIT:

Error: HTTP could not register URL "http://+:27198/" because TCP port 27198 is being used by another application."

Спасибо

+0

Что не работает? Вы получаете сообщение об ошибке? – cadrell0

+0

@ cadrell0 извините мое редактирование. Я не понимаю, почему происходит ошибка. – user101010101

ответ

1

HTTP could not register URL "http://+:27198/" because TCP port 27198 is being used by another application."

Это в значительной степени говорит все это. Существует другое приложение, которое в настоящее время прослушивает этот порт, и поскольку только одно приложение может привязываться к данному порту и IP в данный момент, ваша программа не может.

Выполните netstat -abn в cmd, чтобы узнать, какая программа является наиболее вероятной ASP.NET Development Server.

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

+0

, но это тот же адрес, который был в моем приложении client.config, как он мог работать раньше? – user101010101

+0

@ user101010101 Проверьте, может быть, ваше клиентское приложение в настоящее время запущено и прослушивает этот порт, и вы пытаетесь запустить второй экземпляр. –

0

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

Uri wsBaseAddress = new Uri("http://localhost:27198/"); 

должно быть

Uri wsBaseAddress = new Uri("http://localhost:27198/Service"); 

Вы должны указать имя службы вместо Название служебного файла с расширением

Изменение

host.AddServiceEndpoint(typeof(IService), wshttpbinding, 
      "http://localhost:27198/Service.svc"); 

в

host.AddServiceEndpoint(typeof(IService), wshttpbinding, 
      "http://localhost:27198/Service"); 
+0

Я устал от предложения, но произошла такая же ошибка! – user101010101

+0

какая ошибка вы получаете, работает ли ваш сервис? где вы разместили сервис? – Adil

+0

{«HTTP не удалось зарегистрировать URL-адрес http: // +: 27198/Service /, потому что TCP-порт 27198 используется другим приложением."}. Это та же ошибка, что и раньше. Он размещен на моей локальной машине, и да, я проверил, что служба запущена. – user101010101

Смежные вопросы