我们在尝试使用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计算机上运行良好。我真的无法弄清楚这里发生了什么......
有关如何进行的任何想法?
答案 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
为您要使用的网址前缀授予您的应用程序用户身份。