由於工作用的測試機是架在另一台實體機器的VM裡,每次更新裡面的網站都得透過遠端連線登入後,才能更新,而且遠端連線的速度又不是很快。所以才尋找有無辦法解決這種無效率的更新方式。
直到最近才發現到原來IIS本身就有提供API,只要將C:\Windows\System32\inetsrv底下的Microsoft.Web.Administration.dll加入至VS專案,就能使用API了。
而API的呼叫方式也很簡單,下面提供簡單的範例。
列出網站。
啟動網站。
將網站停止。
在IIS底下建立新網站。
雖然API的使用方式簡單,但將使用IIS API的程式實際佈到IIS時,其實是會有權限問題的,所以要讓程式正常運作,有兩個地方要調整。
第一個是將IIS帳號加到C:\Windows\System32\inetsrv資料夾,讓IIS有足夠的權限可以存取。
第二個就是調整應用程式集區,將”識別”調為LocalSystem,但這樣的做法會有安全上的疑慮,在正式機中最好不要這樣設定。
文章標籤
全站熱搜

請問一下我使用列舉可以但是要停用會出現錯誤??以下是錯誤碼.. 存取被拒。 (發生例外狀況於 HRESULT: 0x80070005 (E_ACCESSDENIED)) 描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。 例外詳細資訊: System.UnauthorizedAccessException: 存取被拒。 (發生例外狀況於 HRESULT: 0x80070005 (E_ACCESSDENIED)) 沒有授權 ASP.NET 存取要求的資源。請考慮將資源存取權授與 ASP.NET 要求識別。ASP.NET 有一個基本處理序識別 (通常在 IIS 5 上為 {MACHINE}\ASPNET,在 IIS 6 上為 Network Service),會在應用程式未模擬的情況下使用。如果應用程式是透過 模擬,這個識別將會是匿名使用者 (通常為 IUSR_MACHINENAME) 或經過驗證的要求使用者。
若要對檔案授與 ASP.NET 存取權,請在檔案總管中以滑鼠右鍵按一下檔案,選擇 [內容] 並選取 [安全] 索引標籤。按一下 [新增] 加入適當的使用者或群組。反白顯示 ASP.NET 帳戶,並且選取所需存取權限的核取方塊。
權限問題,照文章中的方法做,應該就可以解決了