目前我们有一个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服务正常工作。
该服务也适用于我的本地计算机。但是,当作为服务或测试控制台应用程序部署在服务器上时,操作会超时。
您认为有什么问题?代码可以工作,而不是在这台服务器上。
答案 0 :(得分:0)
回答节省时间: “问题得到了解决,我们用来发送短信的公司重新启动了他们的服务器,而且工作正常。很多工时甚至浪费在这个问题之前哈哈。感谢你们的时间。”