名字长了总有XX跟着念 2024-06-18 11:47 采纳率: 77.8%
浏览 12
已结题

WebRequest被目标机器积极拒绝(c#)

在WebRequest.Create的时候我填入了一个网站的URL(可访问),但是GET请求被目标机器积极拒绝,并且是被127.0.0.1:33210拒绝的而不是我的目标服务器,这是这么回事啊?
注:程序在别的电脑上能正常跑,就在某一台电脑上出问题

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-06-18 11:47
    关注

    引自免费微信小程序:皆我百晓生

    遇到WebRequest被目标机器积极拒绝的情况,通常意味着请求没有达到预期的目标服务器,而是在本地机器上被拦截或拒绝了。这可能由多种原因造成,包括但不限于防火墙设置、代理配置错误、本地运行的服务监听了相同的端口,或是网络配置问题。

    解决方案

    1. 检查防火墙和安全软件

    • 步骤:确保本地防火墙或任何安全软件没有阻止WebRequest的出站连接。
    • 操作:检查并暂时禁用防火墙或安全软件,看是否能成功发出请求。

    2. 审查代理设置

    • 步骤:确认WebRequest没有错误地配置为通过一个不正确的代理服务器发送请求。
    • 代码示例
    ServicePointManager.UseNAT = false;
    

    或者在WebRequest实例化时指定代理:

    WebProxy myProxy = new WebProxy("http://proxy.example.com:8080");
    WebRequest request = WebRequest.Create("http://www.example.com");
    request.Proxy = myProxy;
    

    3. 网络监听工具

    • 步骤:使用网络监听工具(如Wireshark)检查出站流量是否正确发送到了目标服务器。
    • 操作:启动监听工具,观察是否有数据包发往目标IP地址和端口。

    4. 检查本地服务

    • 步骤:排查是否有本地服务或程序正在监听127.0.0.1:33210。
    • 操作:使用命令行工具(如Windows的netstat -ano)查看哪些进程占用了该端口。

    5. 代码审查

    • 步骤:审查代码中WebRequest的创建和调用过程,确保没有逻辑错误。
    • 代码示例
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.example.com");
    request.Method = "GET";
    WebResponse response = request.GetResponse();
    

    进一步调试建议

    • 日志记录:在关键位置添加日志输出,了解请求的处理流程。
    • 测试环境:尝试在另一台机器或不同的网络环境下运行相同代码,看是否还存在同样的问题。

    如果上述步骤都无法解决问题,可能需要更深入的技术支持,包括与网络管理员或安全团队沟通,或查阅相关硬件和软件文档。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月27日
  • 已采纳回答 6月19日
  • 修改了问题 6月18日
  • 创建了问题 6月18日