我有一個web服務,我注意到wwwroot文件夾中的一些dll在web服務執行後保持記錄。w3wp.exe在webservice中處理後保持文件鎖定
pc重啓後,問題就解決了。
我可以在我的代碼中釋放dll嗎?
我有一個web服務,我注意到wwwroot文件夾中的一些dll在web服務執行後保持記錄。w3wp.exe在webservice中處理後保持文件鎖定
pc重啓後,問題就解決了。
我可以在我的代碼中釋放dll嗎?
嘗試重新啓動運行web服務的AppPool,或使用iisreset。
iisreset /stop
將停止IIS並釋放dll的。 iisreset /start
將再次啓動IIS備份。
如果您回收應用程序池,那麼dll的鎖將被釋放,直到有人再次點擊您的webservice並獲得新的鎖。
我可以在我的C#代碼中做到這一點嗎? – mouthpiec 2010-06-13 19:58:02
@mouthpiec - 如果您使用ADSI並且您的代碼未在同一應用程序池下運行,則可以從C#代碼重新啓動應用程序池*。但不要嘗試從代碼重新啓動IIS實例,特別是如果您的代碼在該IIS版本中運行(您的代碼將有效地關閉自己)。 iisreset是一項管理型任務,應始終手動完成,如果需要執行此操作並且其他人正在使用服務器,則可能需要提前計劃。 – slugster 2010-06-13 22:20:59
@mouthpiec - 你能描述一下爲什麼你想解鎖DLL嗎?那麼建議路線就更容易了。 – 2010-06-14 07:11:20
這是一個WCF服務,還是一個傳統的ASMX服務? – 2010-06-13 19:56:04
嗨,John,這是一個普通的web服務 – mouthpiec 2010-06-13 20:36:40