#c_sharp #net #http #wcf
При подключении к WCF службе вылетает exception, хотя в app.config конфиг явно указан не 80 порт: An unhandled exception of type 'System.ServiceModel.AddressAlreadyInUseException' occurred in System.ServiceModel.dll Additional information: HTTP could not register URL http://+:80/Temporary_Listen_Addresses/c3e45f68-abf2-4847-95a6-cfd3f512fc54/ because TCP port 80 is being used by another application. Самое странное, что на одном ПК вылетает exception, а на другом нет. В чем может быть проблема? app.config клиента :app.config сервер:
Ответы
Ответ 1
Вы используете wsDualHttpBinding. В этом режиме клиент прослушивает некоторый адрес, где ожидает ответы от сервера. И вот этот-то адрес, который в конфиге вы не задавали, и находится на 80м порту по умолчанию! Используйте атрибут clientBaseAddress для указания обратного адреса на клиенте:Либо используйте другие способы соединения. Так, netTcpBinding - и без обратного адреса умеет передавать сообщения в обе стороны. Еще где-то в WCF есть поддержка веб-сокетов, но я не помню где. Теперь почему может быть занят 80й порт на некоторых компьютерах. Скорее всего, это Skype, который использует этот порт по умолчанию: Но, конечно же, не следует отбрасывать и вариант обычного веб-сервера, Apache, Nginx или Tomcat. А вот IIS с WCF "дружат", поскольку используют один и тот же HTTP.SYS.
Комментариев нет:
Отправить комментарий