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

本文关键字:出错 80时 计算机 Windows7 访问 | 更新日期: 2023-09-27 18:29:39

我们在试图使用C#代码访问Windows7机器上的端口80时遇到问题。

这个错误只发生在Windows7机器上,而同一段代码在WindowsXP机器上运行良好。

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

public static int rx_Port = 80;
IPEndPoint ip_rx = new IPEndPoint(IPAddress.Any, rx_Port);

如果我们试图访问端口80,那么我会得到一个错误作为

"试图以访问权限所禁止的方式访问套接字"

我确信我已经允许所有类别下的端口80通过防火墙进行通信。

如果在Windows7机器上指定了端口80,即使是简单的客户端-服务器程序也无法工作,但在WindowsXP机器上同样的代码也可以正常工作。我真的搞不清这里发生了什么。。。

有什么想法吗?

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

内核模式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为您的应用程序用户身份授予您要使用的URL前缀的权限。