2010-08-08 2 views
3

я хочу, чтобы мой ServiceHost иметь базовый адрес любого IP поэтому я попытался этоWCF прослушать базовый адрес anyip

new ServiceHost(typeof(LoggingController),new Uri("0.0.0.0")); 

и это дает мне неверный формат URI

любой знает, как я должен написать это ?

Я попытался получить доступ к нему из-за пределов локального локатора, и он не работал, я сделал небольшое тестовое программное обеспечение, используя tcpiplistener, и начал слушать тот же порт, и я установил базовый адрес протокола tcpip в anyip и небольшой тест программное обеспечение работало так я понял, все что мне нужно сделать, это настроить одновременно для Webservice -

TcpListener tcpListener = new TcpListener(IPAddress.Any,10021); 

это работает, который также означает мой системный администратор сделал свою работу в убедившись, что порт/сервер является, доступную из снаружи, теперь не должен работать мой webservice!? он работает, но я не могу получить доступ к нему извне, я могу получить к нему доступ с одного и того же ПК, если я запускаю клиент на том же компьютере

+0

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

ответ

1

Напоминает мне о проблеме, которую мы имели с нашим программным обеспечением. Конфигурация по умолчанию в webservice использовала учетные данные Windows-сети для применения безопасности на основе сообщений, которая - из-за учетных данных домена/сети - не будет работать из другой сети. Наше решение заключалось в том, чтобы отключить безопасность при привязке к сервису (что может быть немного сложно в зависимости от используемой вами привязки). Для привязок по умолчанию, таких как WebHttpBinding, просто передается параметр в конструкторе. Надеюсь, это поможет!

+0

Можете ли вы объяснить больше, что вы имеете в виду? – Stacker

+0

Какой параметр мне нужно передать? – Stacker

+0

nevermind Я получил его для работы, это была проблема с сервером, спасибо в любом случае, я отвечу на ваш ответ, хотя – Stacker

4

Следующий код работает для меня в подобной ситуации:

Uri baseAddress = new Uri("net.tcp://0.0.0.0:8080/MyService"); 
host = new ServiceHost(typeof(MyServer), baseAddress);