在 IIS 佈署 asp.net 應用程式基本上只要把檔案複製過去就可以,但如果沒有停止網站的話,檔案是可能會複製失敗的,這會導致佈署失敗。
第一個小技巧是使用 App_offline.htm ,在佈署位置新增 App_offline.htm 檔案以後,IIS 會自動讓網站進入維護模式,對來訪問網站的人會看到 App_offline.htm 檔案的內容。這時候 .dll 也會被卸載,就不會造成複製失敗。
第二個小技巧是 sleep,上面有提到可以新增 App_offline.htm 來讓 IIS 進入維護模式,但這需要一點點時間讓 IIS 去做出反應,那就會需要 sleep 。可是Windows 並沒有 sleep 這類的指令,所以沒辦法 sleep ,那麼可以怎麼做呢?這裡可以參考 如何在批次檔(Batch)中實現 sleep 命令讓任務暫停執行 n 秒 ,我後來是使用 ping 這個指令來作,ping 可以指定次數,也可以指定秒數,透過 ping 就可以達到 sleep 的目的。
ping -c 4 -w 1000 127.0.0.1
沒有留言:
張貼留言