开发者

WCF listen base address anyip

开发者 https://www.devze.com 2023-01-10 12:46 出处:网络
i want my servicehost to have the base address of any IP so i tried this new ServiceHost(typeof(LoggingController),new Uri(\"0.0.0.0\"));

i want my servicehost to have the base address of any IP so i tried this

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

and it gives me invalid URI format

any one knows how should i write this ?

well i tried to access it from outside of my local lan and it didnt work , i made a small test software using tcpiplistener and i started listening to the same port and i set the base address of the tcpip protocol to anyip and the small test software worked so i figured out all i need to do is setting the same for the Webservice –

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

this works which also mean my system admin did his job of making sure the port/server is accessable from outside, now shouldnt my webservice work !? it work but i cant access it from outside , i can access it from the same pc if i run client on the sa开发者_运维知识库me pc


The following code works for me in a similar situation:

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


Reminds me of a problem we had with our software. The default configuration of the webservice used windows network credentials to apply message based security which - due to the domain/network credentials - won't work from another network. Our solution was to disable security on the service binding (which may be a bit tricky depending on the binding you use). For the default bindings like WebHttpBinding it's just passing a parameter in the constructor. Hope this helps!

0

精彩评论

暂无评论...
验证码 换一张
取 消