Рестартирането на приложенито може да се случи при следните ситуации:
Редактиране на web.config
Редактиране machine.config
Редактиране на global.asax
Променени фаслове в bin директорията или някоя от нейните поддиректории.
Промяна (създаване, изтриване, преименуване) на директория в главната директория
ASP.NET фаслове са редактирани и прекомпилирани повече от 20 пъти(Дефоутна настройка в machine.config)
При сетване на атрибут в <processModel> елемента на machine.config, което предизвикава рестарт или shutdown на работния процес*.
*Не се отнася за Вindows 2003 където този елемент е пропуснат.
Затова реших проблема благодарение на първата възможност: Презаписах web.config-a с нов timestap и се получи.
Ето решението на проблема:
/// <summary>
/// Restarts the Web Application
/// Requires either Full Trust (HttpRuntime.UnloadAppDomain)
/// or Write access to web.config.
/// </summary>
public static bool RestartWebApplication()
{
bool Error = false;
try
{
// *** This requires full trust so this will fail
// *** in many scenarios
HttpRuntime.UnloadAppDomain();
}
catch
{
Error = true;
}
if (!Error)
return true;
// *** Couldn't unload with Runtime - let's try modifying web.config
string ConfigPath = HttpContext.Current.Request.PhysicalApplicationPath + "\\web.config";
try
{
File.SetLastWriteTimeUtc(ConfigPath, DateTime.UtcNow);
}
catch
{
return false;
}
return true;
}