2013-09-16 3 views
3

У меня есть веб-сервис, который работает в течение многих лет. Сегодня кто-то сказал мне, что он дал серверу ошибку 500. Я проверил журналы сервера в течение последних нескольких месяцев, и кажется, что я получаю статус 200 для 99% вызовов услуги, а затем несколько 500 и снова спешить. Сам журнал журнала немного здоров, чтобы читать, поэтому я попытался немного его уменьшить, не изменив ничего важного.Почему я получаю ошибку сервера 500 спорадически?

Вот выдержка из журнала сервера:

2013-09-16 09:58:19 <Server IP> GET /WebServicePath/WebService.asmx - 80 - <Server IP> <User Agent String> 200 0 0 874 
2013-09-16 09:58:22 <Server IP> GET /WebServicePath/WebService.asmx op=MyFunction 80 - <Server IP> <User Agent String> 200 0 0 203 
2013-09-16 09:58:35 <Server IP> POST /WebServicePath/WebService.asmx/MyFunction - 80 - <Server IP> <User Agent String> 500 0 0 437 
2013-09-16 09:58:42 <Server IP> POST /WebServicePath/WebService.asmx/MyFunction - 80 - <Server IP> <User Agent String> 500 0 0 0 
2013-09-16 09:58:53 <Server IP> POST /WebServicePath/WebService.asmx/MyFunction - 80 - <Server IP> <User Agent String> 200 0 0 499 
2013-09-16 09:59:05 <Server IP> POST /WebServicePath/WebService.asmx/MyFunction - 80 - <Server IP> <User Agent String> 200 0 0 203 
2013-09-16 09:59:11 <Server IP> POST /WebServicePath/WebService.asmx/MyFunction - 80 - <Server IP> <User Agent String> 200 0 0 187 
2013-09-16 09:59:16 <Server IP> POST /WebServicePath/WebService.asmx/MyFunction - 80 - <Server IP> <User Agent String> 200 0 0 296 
2013-09-16 10:03:17 <Server IP> POST /WebServicePath/WebService.asmx/MyFunction - 80 - <Server IP> <User Agent String> 500 0 0 15 

статус HTTP является четвертым номером справа.

Сервер IIS7 и строка пользовательского агента используется следующим образом:

Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+WOW64;+Trident/5.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729) 

Я проверил просмотр событий для чего вошедшего в те времена, когда я получил 500s, но ничего не нашел.

Я нашел много примеров того, как люди получают ошибку сервера 500 на недавно развернутых сервисах, и у них обычно возникает проблема сборки. Но почему бы это просто случайным образом дать 500 и быть в порядке?

+0

Почему эти ошибки были бы случайными? Первое, что нужно сделать, - это регистрировать дополнительную информацию при возникновении ошибки. [Эта ссылка] (http://stackoverflow.com/questions/211530/why-global-asax-application-error-method-does-not-catch-exceptions-thrown-by-asm) может быть полезна. – Marshall777

+0

Я тоже получаю это. Хотелось бы узнать, если вы когда-нибудь это поняли. –

+0

@JordanParker В моем случае это неожиданно оказалось файлом. Служба будет использовать подключающегося пользователя AD для доступа к определенной папке, что оказалось проблемой для двух пользователей в одном офшорном офисе. Я исправил это, удалив эту зависимость, но мог бы сделать это, предоставив права администратора пользователю веб-службы и всегда используя это, или добавив разрешения для пользователя AD. Я был весьма разочарован тем, что он оказался таким обыденным;) –

ответ

1

A 500 HTTP Status код только что дал Internal Error. Это означает, что веб-приложение бросило невольное исключение любого рода.

Это может быть связано с любой проблемой, когда код получает неожиданное значение. Таким образом, не так много, чтобы просто знать, что бросается 500 человек.

Как правило, что-то было бы брошено в средство просмотра событий (журнал приложений) в приложении ASPNET.

Ведение журнала приложений (NLog, Log4Net, ELMAH), как правило, имеет некоторый вид catch-all в верхней части процесса для извлечения точного типа и сообщения об исключении. Это тип информации, необходимой для дальнейшего изучения.

+0

Я уже проверял журнал приложений на наличие ошибок в одно и то же время, и это было бесплодно. Я посмотрю ASPNET - возможно, он не заносится в журнал немедленно? Weird. –

Смежные вопросы