2024年6月13日 星期四

[.NET Core] 解決MVC網頁服務的dll常常被IIS咬住


在開發.Net Core MVC時,因為專案有多個web和api服務依附在iis上做運行,會需要邊跑網頁邊開發,因此常發生project編譯出來的dll被iis咬住,這時候就得手動重啟iis,但等IIS重啟實在太慢了



 以下是更詳細的步驟說明,以便更好地幫助你設置和使用這些批次檔案:

步驟 1:建立iisrestart1.bat批次檔

  1. 打開記事本(Notepad)或任何文字編輯器。
  2. 輸入以下指令:

    C:\Windows\System32\inetsrv\appcmd.exe recycle apppool /apppool.name:"WebAPIPool" C:\Windows\System32\inetsrv\appcmd.exe recycle apppool /apppool.name:"XXXwebPool"
  3. 將檔案另存為iisrestart1.bat,確保副檔名是.bat而不是.txt

步驟 2:建立批次檔的捷徑並設置快捷方式

  1. 右鍵點擊iisrestart1.bat,選擇"建立捷徑"。
  2. 右鍵點擊剛剛建立的捷徑,選擇"內容"。
  3. 在"目標"欄位中輸入以下內容:

    C:\Windows\System32\cmd.exe /C "C:\Users\XXXX\Documents\iisrestart1.bat"
    注意將C:\Users\XXXX\Documents\iisrestart1.bat替換為你實際存放批次檔的位置。

步驟 3:將捷徑釘選到工作列

  1. 右鍵點擊剛才建立的捷徑,選擇"釘選到工作列"。
  2. 現在你可以從工作列直接執行這個批次檔,快速釋放IIS應用程式Pool。

額外指令筆記

  1. 砍掉所有w3wp執行緒


    taskkill /F /IM w3wp.exe /T

    這個指令會強制終止所有的w3wp.exe進程,可以用來在IIS完全無法回應時強制重啟IIS工作進程。

  2. 回收指定的IIS Pool


    C:\Windows\System32\inetsrv\appcmd.exe recycle apppool /apppool.name:"WebAPIPool" C:\Windows\System32\inetsrv\appcmd.exe recycle apppool /apppool.name:"XXXwebPool"

    這些指令用來回收指定的IIS應用程式池,通常用於釋放被鎖定的資源。

注意事項

  1. 權限問題:確保你的使用者帳號有足夠的權限來執行這些IIS相關的指令,否則可能會失敗。
  2. 批次檔路徑:檢查批次檔路徑是否正確,以避免因路徑錯誤而無法執行。
  3. 應用程式池名稱:確保應用程式池名稱正確,否則指令將無法找到並回收相應的應用程式池。

這樣設置後,你應該可以更快捷地管理IIS應用程式池,提升開發過程中的效率。

 

MangoHost Copyright © 2009 Cookiez is Designed by Ipietoon for Free Blogger Template