Я использую 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.String 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" />
Я попытался изменить значение Timeout в HttpWebRequest, но оно все еще истекло.
Что вызывает это, и как я могу это исправить?