У меня есть приложение .NET 2.0, которое я заинтересован в переносе для работы в Linux под mod_mono.System.Threading.ThreadAbortException в прокси XHR, запущенном на mod_mono (3.12.1)
Часть приложения - прокси XHR, который обеспечивает доступ к различным каналам передачи данных, предоставляемым интерфейсу. Этот прокси-скрипт гарантирует, что пользователь имеет действительный сеанс, а затем удостоверяется, что пользователь имеет право на данные, которые они пытаются извлечь. Наконец, если потребуется, прокси преобразует XML в JSON с помощью Newtonsoft.
URL-адрес для этого сервиса выглядит примерно так:
/ApiProxy.aspx?url=http%3A%2F%2Fexample%2Fapi%2Fservice
По некоторым причинам я не могу получить эта часть программного обеспечения работает под mod_mono. Он вызывает следующую ошибку:
System.Threading.ThreadAbortException
Thread was being aborted
Description: HTTP 500.Error processing request.
Details: Non-web exception. Exception origin (name of application or object): mscorlib.
Exception stack trace:
at (wrapper managed-to-native) System.Threading.Thread:Abort_internal (System.Threading.InternalThread,object)
at System.Threading.Thread.Abort (System.Object stateInfo) [0x00000] in <filename unknown>:0
at System.Web.HttpResponse.End() [0x00000] in <filename unknown>:0
at ASP.apiproxy_aspx.__RenderTree (System.Web.UI.HtmlTextWriter __output, System.Web.UI.Control parameterContainer) [0x00000] in <filename unknown>:0
Я действительно не знаю, что с этим делать.
Он, похоже, не ссылается ни на один из моих кодов и не дает никаких указаний относительно того, где может возникнуть проблема. Один ключ у меня есть то, что есть некоторые крупные блоки, которые, кажется, связаны с вопросом:
using(SqlConnection con = new SqlConnection(myConnectionString))
{
con.Open();
//1) determine if the user is allowed to get the service
//2) retrieve the content the user is requesting
//3) convert the content to json
} catch (Exception ex){
throw new Exception("Unhandled exception", ex);
} finally {
if(con != null)
con.Close();
}
}
Когда я закомментируйте TRY/поймать/наконец блокировать поведение меняется немного, но конечный результат все равно ошибка. На этот раз голая ошибка с ошибкой 400.
Я действительно не знаю, с чего начать, поэтому я предполагаю, что у меня есть два вопроса:
- Что вызывает эту ошибку?
- Как я могу получить более подробную диагностическую информацию?