尝试使用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机器上同样的代码也可以正常工作。我真的搞不清这里发生了什么。。。
有什么想法吗?
内核模式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前缀的权限。