C#Http服务器报HttpListener拒绝访问异常解决方法

问题:Win7下在尝试搭建简单http服务器的时候,执行httpListener.Start();报错HttpListener拒绝访问异常


代码如下:
HttpListener httpListener = new HttpListener();//创建服务器监听
httpListener.Prefixes.Add("http://+:8080/");//配置监听地址。+代表本机可能的IP如localhost、127.0.0.1、192.168.199.X(本机IP)等;
httpListener.Start(); //开启对指定URL和端口的监听,开始处理客户端输入请求。


解决方法:
以管理员CMD命令行执行:
①先删除可能存在的错误urlacl,这里的*号代指localhost、127.0.0.1、192.168.199.X本地地址和+号等。
命令:netsh http delete urlacl url=http://*:8080/ 
举例:netsh http delete urlacl url=http://+:8080/ 
②将上面删除的*号地址重新加进url,user选择所有人
命令:netsh http add urlacl url=http://*:8080/  user=Everyone
举例:netsh http add urlacl url=http://+:8080/  user=Everyone
③CMD配置防火墙
netsh advfirewall firewall Add rule name=\"命令行Web访问8080\" dir=in protocol=tcp localport=8080 action=allow
经过如上设置服务端就可以以httpListener.Prefixes.Add("http://+:8080/");监听地址开启监听。客户端可以通过访问服务端8080端口。服务端本机也可以在浏览器中以localhost和127.0.0.1访问自身http服务器。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
下面是一个使用C#创建简单的HttpListener服务器的示例代码: ```csharp using System; using System.Net; using System.Text; public class SimpleHttpServer { public static void Main(string[] args) { // 设置监听的地址和端口号 string url = "http://localhost:8080/"; // 创建HttpListener对象 HttpListener listener = new HttpListener(); // 添加要监听的地址 listener.Prefixes.Add(url); // 开始监听 listener.Start(); Console.WriteLine("Server is running..."); while (true) { // 等待客户端请求 HttpListenerContext context = listener.GetContext(); // 获取请求对象 HttpListenerRequest request = context.Request; // 获取请求的HTTP方法(GET, POST等) string httpMethod = request.HttpMethod; // 获取请求的URL string urlRequest = request.Url.ToString(); // 获取请求的内容 string requestBody = new System.IO.StreamReader(request.InputStream, request.ContentEncoding).ReadToEnd(); // 构建响应内容 string responseBody = "<html><body><h1>Hello, World!</h1></body></html>"; // 将响应内容转换为字节数组 byte[] buffer = Encoding.UTF8.GetBytes(responseBody); // 设置响应状态码 context.Response.StatusCode = 200; // 设置响应内容长度 context.Response.ContentLength64 = buffer.Length; // 发送响应内容 context.Response.OutputStream.Write(buffer, 0, buffer.Length); // 关闭响应 context.Response.OutputStream.Close(); } } } ``` 这个例子创建一个HttpListener对象,并设置要监听的地址和端口号。然后使用while循环等待客户端请求。当有客户端请求到达时,它获取请求对象,并从请求对象中获取HTTP方法,URL和内容。然后构建响应内容,并将其发送回客户端。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值