尝试使用C#访问Windows 7计算机上的端口80时出错

时间:2012-03-30 03:57:45

标签: c# sql sockets iis

我们在尝试使用C#代码访问Windows 7计算机上的端口80时遇到问题。

此错误恰好发生在Windows 7计算机上,而同一段代码在Windows XP计算机上正常工作。

我们使用的C#代码使用核心套接字编程。下面是我们将地址绑定到端口80的代码段。

public static int rx_Port = 80;

IPEndPoint ip_rx = new IPEndPoint(IPAddress.Any, rx_Port);

如果我们尝试访问端口80,那么我会收到错误

“试图以其访问权限禁止的方式访问套接字”

我很确定我已经允许在所有类别下通过防火墙进行通信。

如果在Windows 7计算机上指定了端口80,但即使是简单的客户端服务器程序也不起作用,但是同一段代码在Windows XP计算机上运行良好。我真的无法弄清楚这里发生了什么......

有关如何进行的任何想法?

1 个答案:

答案 0 :(得分:2)

内核模式HTTP驱动程序HTTP.sys正在运行。

您可以使用netsh配置它。

http://msdn.microsoft.com/en-us/library/windows/desktop/cc308384(v=vs.85).aspx

例如,查看它正在侦听的IP地址:

netsh http show iplisten

然后您可以使用

删除它们
netsh http delete iplisten address=1.1.1.1

(例如)。

但是,如果您正在编写Windows应用程序,我建议您可能希望与IIS合作,而不是仅仅禁用它。如果您使用HttpListener,则可以将其配置为与IIS共享端口,并且它将接收您指定的某些URL前缀的请求。

文档有一个简单的例子(并且我自己从未使用过这个)。

http://msdn.microsoft.com/en-us/library/system.net.httplistener.aspx

您必须使用netsh为您要使用的网址前缀授予您的应用程序用户身份。