Windows服务和服务器的WebRequest超时

时间:2015-02-26 10:07:23

标签: c# rabbitmq

目前我们有一个Windows服务来处理来自RabbitMQ的消息。它通过使用对URi的Web请求来完成此操作。然后我们读取响应,然后如果成功则从那里继续。

处理讯息方法

//Deserialze the response 
PMResponse res = (PMResponse)ser.ReadObject(GetResponse(addr + paramArgs));

GetResponse方法

private static MemoryStream GetResponse(string URi)
            {
            // Create a request using a URL that can receive a post. 
            WebRequest request = WebRequest.Create(URi);
            // Set the Method property of the request to POST.
            request.Method = "POST";

            // Create POST data and convert it to a byte array.
            string postData = "";
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
            // Set the ContentType property of the WebRequest.
            request.ContentType = "application/x-www-form-urlencoded";
            // Set the ContentLength property of the WebRequest.
            request.ContentLength = byteArray.Length;

            // Get the request stream.
            Stream dataStream = request.GetRequestStream();
            // Write the data to the request stream.
            dataStream.Write(byteArray, 0, byteArray.Length);
            // Close the Stream object.
            dataStream.Close();

            // Get the response.
            WebResponse response = request.GetResponse();


            // Get the stream containing content returned by the server.
            dataStream = response.GetResponseStream();
            // Open the stream using a StreamReader for easy access.
            StreamReader reader = new StreamReader(dataStream);
            // Read the content.
            string responseFromServer = reader.ReadToEnd();
            // Display the content.
            //Console.WriteLine(responseFromServer);


            MemoryStream mStrm = new MemoryStream(Encoding.UTF8.GetBytes(responseFromServer));
            reader.Close();
            dataStream.Close();
            return mStrm;
        }

该服务安装在我们的一台服务器上,上周无处不在,应用程序停止处理消息。

当我们在Web浏览器中打开参数化URL时,我们用来处理SMS消息的Web服务正常工作。

该服务也适用于我的本地计算机。但是,当作为服务或测试控制台应用程序部署在服务器上时,操作会超时。

您认为有什么问题?代码可以工作,而不是在这台服务器上。

1 个答案:

答案 0 :(得分:0)

回答节省时间: “问题得到了解决,我们用来发送短信的公司重新启动了他们的服务器,而且工作正常。很多工时甚至浪费在这个问题之前哈哈。感谢你们的时间。”