Я обнаружил ошибку при попытке установить соединение с использованием экземпляра HttpWebRequest
. В строке using (Stream stm = req.GetRequestStream())
возникает следующая ошибка:
Попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через определенный промежуток времени, или не удалось установить соединение, так как подключенный хост не смог ответить.
Ответ поставщика конечной точки:
Клиент заявил, что он не получил никакого запроса, он сказал, что не может ничего сделать, пока не получит запрос на своей стороне. Клиент объяснил, что ошибка может быть связана с настройками Visual Studio (я использую Visual Studio 2015).
Пожалуйста, предложите любое решение проблемы.
using System.Net;
using System.Security.Cryptography.X509Certificates;
private void btnSubmit_Click(object sender, EventArgs e)
{
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
string soap = = ""; //Added soap xml content here. Due to security reasons could not display the xml here.
X509Certificate2 cert = new X509Certificate2(txtCertificatePath.Text, txtCertificatePwd.Text);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(txtServiceUrl.Text);
req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8";
req.ContentType = "application/x-www-form-urlencoded; charset=ISO-8859-1";
req.Method = WebRequestMethods.Http.Post;
req.Credentials = new NetworkCredential(txtUserName.Text, txtPassWord.Text);
req.ClientCertificates.Add(cert);
MessageBox.Show(soap);
req.Timeout = 600000;
using (Stream stm = req.GetRequestStream())
{
using (StreamWriter stmw = new StreamWriter(stm))
{
stmw.Write(soap);
stmw.Close();
}
}
try
{
//System.Threading.Thread.Sleep(20000);
WebResponse response = req.GetResponse();
Stream responseStream = response.GetResponseStream();
response = req.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream());
string result = sr.ReadToEnd();
sr.Close();
}
catch (Exception ex)
{
if (ex is WebException)
{
WebException we = ex as WebException;
WebResponse webResponse = we.Response;
throw new Exception(ex.Message);
}
}
}