Остановите ASP.Net от повторного использования пула приложений из-за «изменений в корзине» - PullRequest
1 голос
/ 11 августа 2009

Привет, У меня есть большое .Net веб-приложение, которое работает на ферме блейдов с базой кода на NAS. Время от времени небольшие колебания времени отклика nas заставляют .NET думать, что что-то в корзине изменилось, и запускают перезапуск пула приложений. На самом деле никаких изменений не произошло. Есть ли способ отключить .Net мониторинг изменений в корзине?

Ответы [ 3 ]

1 голос
/ 11 августа 2009

Это положит конец этому. Теперь вы должны выполнить iisreset, чтобы перезапустить пул приложений.

'This is supposed to turn off the monitoring for directory deletes
'See https://connect.microsoft.com/VisualStudio/feedback/Workaround.aspx?FeedbackID=240686
'This incurrs the penelty of an IISRESET or manually restarting the containing AppPool after every upgrade.
Dim pi As PropertyInfo
Dim o As Object
Dim m As MethodInfo
pi = GetType(System.Web.HttpRuntime).GetProperty("FileChangesMonitor", BindingFlags.NonPublic Or BindingFlags.Public Or BindingFlags.Static)
o = pi.GetValue(Nothing, Nothing)
m = o.GetType().GetMethod("Stop", BindingFlags.Instance Or BindingFlags.NonPublic)
m.Invoke(o, New Object() {})
1 голос
/ 11 августа 2009

Похоже, что есть исправление, позволяющее отключить «функцию» с помощью записи реестра:

http://support.microsoft.com/kb/911272

Не совсем уверен, что это работает на мусорном ведре или нет.

0 голосов
/ 11 августа 2009

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

Реальные вопросы: a) Действительно ли IIS обнаруживает изменение, или это происходит из-за "колебаний", заставляющих ОС думать, что файлы не были моментально? б) Если «колебания» являются корнем проблемы, то что их вызывает? Как это можно решить?

...