Http post error: существующее соединение было принудительно закрыто удаленным хостом
Я понимаю, что было несколько подобных сообщений, но я пока не нашел решения. Я пытаюсь отправить XML на шлюз MPI, но получаю следующую ошибку:
Невозможно прочитать данные из транспортного соединения: существующее соединение было принудительно закрыто удаленным хостом.
Ниже приведен код, который я в настоящее время использую, но попробовал практически каждый подход, о котором я могу подумать, и все они возвращают одну и ту же ошибку:
string result = "";
string xml = "<TNSAuthRequest><CardNumber>0123456789</CardNumber><ExpiryDate>1801</ExpiryDate><PurchaseAmt>750</PurchaseAmt><CurrencyCode>826</CurrencyCode><CurrencyExponent>2</CurrencyExponent><CountryCode>826</CountryCode><MerchantName>Mayflower</MerchantName><MerchantId>0123456789</MerchantId><MerchantData>abcdefghijklmnopqrstuvwxyz0123456789</MerchantData><MerchantUrl>example.com</MerchantUrl><NotificationURL>example.com/basket</NotificationURL></TNSAuthRequest>";
var url = "https://mpi.securecxl.com";
byte[] bytes = System.Text.Encoding.ASCII.GetBytes("xmldata=" + xml.ToString());
ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(ValidateRemoteCertificate);
var req = (HttpWebRequest)WebRequest.Create(url);
req.AllowWriteStreamBuffering = true;
req.ContentType = "text/xml";
req.Method = "POST";
//req.ContentLength = bytes.Length;
req.KeepAlive = false;
req.ProtocolVersion = HttpVersion.Version10;
req.ServicePoint.ConnectionLimit = 1;
//req.Timeout = -1;
try
{
using (var writer = new StreamWriter(req.GetRequestStream(), Encoding.ASCII))
{
writer.WriteLine(bytes);
}
using (WebResponse resp = req.GetResponse())
{
using (StreamReader sr = new StreamReader(resp.GetResponseStream()))
{
result = sr.ReadToEnd().Trim();
}
}
}
catch (Exception ex)
{
result = ex.Message + "<br />" + ex.InnerException.Message + "<br /><br />" + xml.Replace("<", "<");
}
ViewBag.result = result;
Я в основном брожу, если кто-нибудь может увидеть что-то, что может быть не так с кодом, который может быть причиной этой ошибки, или если я, скорее всего, проблема с их стороны? Попробовал запустить на моем локальном хосте, нашем живом сервере и моем собственном частном сервере (с совершенно другим IP) и все еще получить тот же результат.
Есть идеи?