从Web应用程序调用Web服务时拒绝连接可以从localhost正常工作

时间:2013-01-16 18:12:00

标签: c# .net web-services

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,其中传递了相关的凭据。

1 个答案:

答案 0 :(得分:2)

参考此StackoverFlow发布No connection could be made because the target machine actively refused it

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

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