0

NET Web 应用程序,它调用远程 Web 服务来获取一些信息。当我将 Web 应用程序部署到本地计算机的 IIS 并运行时,它能够正常访问远程 Web 服务。但是,如果我将 Web 应用程序部署到其中一台实时服务器,我会得到 System.Net.Sockets.SocketException:

无法建立连接,因为目标机器主动拒绝它 87.224.86.167:8080

我用来发出请求的 C# 代码非常简单:

using (var client = new System.Net.WebClient())
{
    string data = "{\"operation\":\"logon\", \"username\":\"" + hwCommUsername + "\", \"password\":\"" + hwCommPassword + "\"}";
    byte[] response = client.UploadData(uri, "PUT", Encoding.UTF8.GetBytes(data));
    string jsonResponse = Encoding.UTF8.GetString(response);
    object decoded = EncoderHelper.JsonDecode(jsonResponse);
}

知道为什么吗?

更新:我正在访问的示例 Uri 是:http ://a23416.loco-pos.net这是一个有效的 URI,其中传入了正确的凭据。

4

1 回答 1

2

参考this StackoverFlow Posting No connection could be made because the target machine主动拒绝它

“主动拒绝它”意味着当您尝试连接时主机发送了重置而不是确认。因此,这在您的代码中不是问题。防火墙阻止了连接,或者托管服务的进程没有在该端口上侦听,这可能是因为它根本没有运行,或者因为它正在侦听不同的端口。

启动托管服务的进程后,请尝试netstat -anb(需要管理员权限)以验证它是否正在运行并在预期的端口上侦听。

于 2013-01-16T18:20:06.527 回答