Я использую API платежного шлюза в своем приложении ASP.Net. При тестировании в MonoDevelop с XSP приложение работает. Когда я настраиваю его для работы в apache2 с mod_mono, код продолжает падать с ошибкой тайм-аута.
Я не понимаю, что может измениться с хостингом в Apache вместо XSP. В любом случае ниже приведен код, время ожидания которого истекло:
private string SubmitXml(string InputXml)
{
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(_WebServiceUrl);
webReq.Method = "POST";
byte[] reqBytes;
reqBytes = System.Text.Encoding.UTF8.GetBytes(InputXml);
webReq.ContentType = "application/x-www-form-urlencoded";
webReq.ContentLength = reqBytes.Length;
webReq.Timeout = 5000;
Stream requestStream = webReq.GetRequestStream();
requestStream.Write(reqBytes, 0, reqBytes.Length);
requestStream.Close();
HttpWebResponse webResponse = (HttpWebResponse)webReq.GetResponse();
using (StreamReader sr = new StreamReader(webResponse.GetResponseStream(), System.Text.Encoding.ASCII))
{
return sr.ReadToEnd();
}
}
Сбой кода в строке: Stream requestStream = webReq.GetRequestStream();
Возвращенная ошибка:
Время ожидания запроса истекло
Описание: HTTP 500. Ошибка обработки запроса.
Трассировка стека:
System.Net.WebException: время ожидания запроса истекло в System.Net.HttpWebRequest.GetRequestStream() [0x0005f] в /private/tmp/monobuild/build/BUILD/mono-2.10.9/mcs/class/System/System.Net/HttpWebRequest.cs:746 в TCShared.PxPay.SubmitXml (System.Строка InputXml) [0x00048] в /Users/liam/Projects/techcertain/techcertaincsharp/Components/TCShared/PaymentGateways/Client/PxPay.cs:85 в TCShared.PxPay.GenerateRequest (ввод TCShared.RequestInput) [0x00015] в /Users/liam/Projects/techcertain/techcertaincsharp/Components/TCShared/PaymentGateways/Client/PxPay.cs:69
В моем Web.Config указано следующее время ожидания запроса:
<httpRuntime executionTimeout="43200" maxRequestLength="104856" requestValidationMode="2.0" />
Я попытался изменить время ожидания значение в HttpWebRequest, но время ожидания истекло.
Из-за чего это происходит и как это исправить?