1

我有一台装有Windows Server 2008的服务器电脑。我还有一个 wcf 服务,它使用端口 8525并使用Windows 服务托管它。我在服务器防火墙中打开端口(添加规则)。

我的服务器机器有一个有效的 IP。所以我的客户尝试在 ((http)://MyServerIP:8525/ServiceName) 连接到我的服务。

我所有的应用程序用户都是在公司工作的人。所以用户互联网来自安全网络(代理服务器或 VPN 连接)。

问题在这里:

我的很多客户都有连接问题,似乎本地网络阻止了我的程序连接(如果他们尝试连接到我的服务器系统。诊断侦听器将记录它)但服务不保存任何日志。

我认为他们的互联网服务器防火墙并且它阻止了我。我修复了其中一些

<defaultProxy enabled="true" useDefaultCredentials="true" />

但仍然有很多人有同样的问题。另一个烦人的问题是网络管理员因为安全问题没有打开那个端口,也没有帮助我。

一个常见异常是:System.ServiceModel.EndpointNotFoundException > System.Net.WebException > System.Net.Sockets.SocketException(在客户端)。

当我从家里连接时,这个问题没有发生。

我的问题 :

有什么方法可以用 c# 代码或客户端 app.config 解决这个问题?或者至少通过更改服务配置(服务器端)来解决这个问题。

4

1 回答 1

1

唯一简单的解决方案是在端口 80 上托管该服务

The problem is that some networks do not permit outgoing connection to ports other than permitted services(http,https,pop, etc etc)

Or you can ask sysadmins of those networks to permit traffic to your ip/port

If you have iis on that server you could host wcf on iis.

Remenber that only one process can bind to a port on an address at any one time.

there you can find some info: How can a WCF service listen the same port as IIS?

于 2013-03-04T09:23:50.713 回答