Небольшое приложение ASP.NET 2.0 блокируется, пока мы не запустим iisreset. Помогите! - PullRequest
1 голос
/ 01 ноября 2010

Недавно я разработал простое приложение для отображения списка файлов для некоторых пользователей на основе уровней доступа и позволяет им загружать их и т. Д.

Это приложение было разработано для размещения в большой корпорации с высокой степенью безопасности.политики и достаточно критически важны ..

Приложение очень простое,

  • оно проверяет NTID пользователей (используя проверку подлинности Windows)
  • сравнивает это с таблицейв SQL
  • затем выводит список всех файлов, к которым у этого пользователя есть доступ

В значительной степени это ..

Есть также несколькоформы для добавления пользователя, редактирования пользователя и загрузки файла.

Часто возникает проблема, когда приложение практически не отвечает.

Это можно исправить, открыв командную строку и запустив 'iisreset '

Следует также отметить, что при первоначальном развертывании приложения мы изменили некоторые настройки на сервере, чтобы соединения оставалисьнемного дольше, чтобы разрешить загрузку больших файлов.

Может ли это быть причиной блокировки приложения?

Я не могу перезапустить сервер до выходных.

СерверWindows 2003, работающая под управлением IIS6.0 и .NET 2.0

Helllllp!

Спасибо, Даниэль

Ответы [ 3 ]

1 голос
/ 01 ноября 2010

Если приложение зависло, я бы рекомендовал использовать инструменты для захвата дампов памяти и их анализа. Это даст вам верный ответ.

Попробуйте это ... http://aspalliance.com/1350_Post_Production_Debugging_for_ASPNET_Applications__Part_1

Как только вы закончите захват дампов, вы можете проверить наличие потоков, которые выглядят зависшими и что именно они делают.

http://blogs.msdn.com/b/tess/

1 голос
/ 04 ноября 2010

Ха-ха .. Я чувствую себя таким тупым!

После утренней записи стека в лог-файлы я обнаружил ошибку ..

    try
    {
        //Do Some SQL Stuff Here
        //Close SQL Connection
    }
    catch
    {
        //Whoops it went Bang!
    }

Исправлено путем добавления этого:

    finally
    {
       //Close The Connection Doofus!
    }

Упс!

Таким образом, в основном, если в SQL происходит ошибка, она сразу же поймает и не закроет соединение!

Спасибо за вашу помощь всем!

1 голос
/ 01 ноября 2010

Есть очень редкие случаи, когда одно приложение зависает, и только iis restart исправляет это.

Это случаи бесконечных циклов.Поэтому проверьте свой код для

Responce.Redirect(onsamepage);

или для

public string sMyText
{
   get {return sMyText;}
   set {sMyText = value;}
}

или для

protected override void OnLoad(EventArgs e)
{
  base.OnInit(e);
}
...