2009-12-15 83 views
2

我需要從代碼重新啓動應用程序池,有沒有人知道如何做到這一點? 我見過很多iis6的例子,大多數評論都是「它不工作」使用asp.net(IIS7)重新啓動應用程序池

所以任何想法,或者無論如何,讓IIS觀看一個文件,當它改變了應用程序池重啓?

+0

導致應用程序池重啓的文件更改聽起來不像一個非常強大的解決方案。你能詳細說明你爲什麼這麼做嗎? – 2009-12-15 13:20:04

+0

我們正在這樣做,因爲我們正在使用url rewrite 1.1,並且每次更改url時我們都需要重新啓動應用程序池,因爲它在池啓動時將它們存儲在內存中。 這些網址是由管理系統在外部文件生成的webconfig中生成的。 – JamesStuddart 2009-12-15 15:13:38

回答

3

我想,使用application pool class就是要走的路。

善良,

+0

很酷的感謝,我已經下載了iis7 sdk但仍然沒有圖書館?有任何想法嗎? – JamesStuddart 2009-12-15 15:08:04

+0

我想我已經找到了DLL在這裏:%WinDir%\ System32 \ InetSrv 會給這個去 – JamesStuddart 2009-12-15 15:14:44

+0

嗯,我得到訪問被拒絕重新啓動appPool,除非我使用管理員帳戶作爲appPool用戶,但那不是一個好主意。 任何想法哪些組應該被允許去做? – JamesStuddart 2009-12-15 17:34:01

0

更簡單的方法。爲什麼不是當你正在尋找改變文件,你要回收的應用程序只是更改Web.config的關鍵。到Web.config中的任何變化會導致你的應用程序,以回收..

1

實際上追加一個空格「」到最後的web.config將導致重新啓動應用程序。

在Web應用程序文件夾(的Inetpub \ wwwroot的\ web應用程序)如果您運行的批處理文件,你會得到一個循環

0

比而創建

echo >> web.config 

一個bat文件(rest.bat)這樣做(回收池)爲什麼不使用基於文件的緩存依賴?有一個使用xml文件做here的例子。這樣沒有更多的應用程序回收。

XmlDocument urls = new XmlDocument(); 
     urls.Load(Server.MapPath("pathetourlfile.xml")); 
     CacheDependancy dependancy = new CacheDependency(Server.MapPath("pathetourlfile.xml")) 
     Cache.Insert("URLS", urls, dependency) 
+0

感謝這個例子,我們有litterally只是刪除整個應用程序池重新啓動代碼,因爲我們已經找到了一個更好的方式做我們正在做的事情(回到我在IIS6中的方式,我們只是缺少一個元素webconfig)。 :) – JamesStuddart 2010-05-12 09:02:49

相關問題