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,其中传递了相关的凭据。
答案 0 :(得分:2)
参考此StackoverFlow发布No connection could be made because the target machine actively refused it
"积极拒绝它"意味着当您尝试连接时,主机发送了重置而不是确认。因此,您的代码不是问题。要么有防火墙阻止连接,要么主持服务的进程没有侦听该端口,这可能是因为它根本没有运行,或者因为它正在侦听不同的端口。
一旦您启动托管服务的进程,请尝试netstat -anb
(需要管理员权限)来验证它是否正在运行并正在侦听预期的端口。