共用方式為


ASP.NET 2.0/3.5 共用裝載設定

作者: Olive Oliver

簡介

IIS 提供動態內容的增強功能,特別是 ASP.NET。 在 IIS 7 和更新版本中,ASP.NET 執行時間擴充性模型已整合到核心伺服器中。 這可讓開發人員使用 ASP.NET 2.0 或更高版本和.NET Framework的豐富功能來完整擴充 IIS,而不是使用較低層級的 C++ API。 現有的 ASP.NET 應用程式可藉由使用表單驗證、角色和所有類型的內容輸出快取等現有功能,而受益于更緊密的整合,而不只是 .aspx 頁面。

若要深入瞭解 ASP.NET 與 IIS 整合的一些主要功能和優點,請參閱 Core Web Server 概觀。 如需安裝 .NET Framework 3.5 的相關資訊,請參閱 https://www.microsoft.com/net/ ASP.NET 社群網站

下列設定用於網頁伺服器上,做為裝載指引中一文中所述的共用裝載架構的一部分。 若要深入瞭解為何建議這些設定,以及有關如何設定這些設定的其他詳細資料,請下載 ASP.NET 4 裝載部署指南

設定信任層級

信任層級可讓您定義 ASP.NET 的安全性規則。 他們會定義應用程式可執行檔作業類型,例如從磁片讀取或存取登錄。 建議的信任等級為 Medium,允許許多常見的作業,但會限制許多危險的應用程式。 如果您需要允許比中度信任允許更多的作業,您應該建立自訂信任層級。

若要設定自訂信任層級,並設定其他許可權

  1. 瀏覽至 %windir%\Microsoft.NET\Framework \{version}\ CONFIG 目錄。

  2. 複製中信任原則檔案,web_mediumtrust.config,以在相同的目錄中 %windir%\Microsoft.NET\Framework\{version}\ CONFIG\ 建立新的原則檔案。

  3. 重新命名檔案,以指出它是自訂信任層級,例如web_CustomTrust.config。

  4. 開啟新的檔案,web_CustomTrust.config,然後找出 [WebPermission ] 區段。

    ...

    <IPermission class="WebPermission"
    
    version="1"
                   <ConnectAccess>
                       <URI uri="$OriginHost$" />
                   </ConnectAccess>
         </IPermission>
    

    ...

  5. 編輯 WebPermission ,以便移除 ConnectAccess 元素,並將 [未限制 ] 設定為 true

    ...

    <IPermission class="WebPermission"
    
    version="1" 
                      Unrestricted="true"/>
    

    ...

  6. PrintingPermissionEnvironmentPermission批註化,除非知道共用裝載環境需要它們。

  7. 將新 <trustLevel> 元素新增至 <securityPolicy> Web.config檔案的 區段,如下所示:

    <location allowOverride="true">
    
        <system.web>
          <securityPolicy>
           <trustLevel name="Full" policyFile="internal" />
           <trustLevel name="High" policyFile="web_hightrust.config" />
           <trustLevel name="Medium" policyFile="web_mediumtrust.config" />
           <trustLevel name="Low" policyFile="web_lowtrust.config" />
           <trustLevel name="Minimal" 
                       policyFile="web_minimaltrust.config" />
           <trustLevel name="Custom" policyFile="web_CustomTrust.config" />
          </securityPolicy>
          <trust level="Custom" originUrl="" />
         </system.web>
    </location>
    
  8. 鎖定信任層級,讓伺服器上的應用程式無法變更信任層級,方法是將 位置 allowOverride 元素設定為 false

    <location allowOverride="false">
        <system.web>
          <securityPolicy>
           <trustLevel name="Full" policyFile="internal" />
           <trustLevel name="High" policyFile="web_hightrust.config" />
           <trustLevel name="Medium" policyFile="web_mediumtrust.config" />
           <trustLevel name="Low" policyFile="web_lowtrust.config" />
           <trustLevel name="Minimal" 
                       policyFile="web_minimaltrust.config" />
           <trustLevel name="Custom" policyFile="web_CustomTrust.config" />
          </securityPolicy>
          <trust level="Custom" originUrl="" />
         </system.web>
    </location>
    

設定要從遠端檔案伺服器提供的內容

將 ASP.NET 設定為使用儲存在遠端檔案伺服器上的內容時,需要一些額外的步驟。

當 IIS 從遠端檔案伺服器接收內容時,它會模擬已驗證的使用者。 這是特別設定為虛擬目錄使用者的使用者,或者如果未指定,則為匿名使用者。 IIS 指引指出應用程式集區使用者應作為匿名使用者使用,因此在此情況下,模擬的身分識別是應用程式集區身分識別。 使用一個身分識別進行匿名、應用程式集區和虛擬目錄的所有 (存取) 大幅簡化部署。

若要從遠端檔案伺服器執行一些 ASP.NET 應用程式,模擬的使用者必須能夠存取 Windows 暫存和暫存編譯目錄。

提供來自檔案伺服器共用 ASP.NET 內容

  1. 編輯資料夾的 ACL,以授與所有應用程式集區身分 %windir%\Temp 識別的許可權給目錄。

  2. 新增代碼啟用安全性 (CAS) 原則,以允許 ASP.NET 適當的檔案伺服器共用存取權。 若要這樣做,請開啟命令提示字元並執行下列命令:

    %windir%\Microsoft.NET\Framework\v2.0.50727\caspol -m -ag 1.  -url "file://\\remotefileserver\content$\*" FullTrust
    

設定垃圾收集行程設定

.NET Framework 會使用自動垃圾收集來管理所有應用程式的記憶體。 當垃圾收集行程 (GC) 決定已累積足夠的垃圾,而且有效率地執行收集,以釋放某些記憶體。 此程式完全自動,但有可讓程式更有效率的設定。

For more information about the GC, see "Chapter 5 - Improving Managed Code Performance" and look at the section Garbage Collection Explained.

啟用工作站垃圾收集行程

根據預設,.NET Framework會使用伺服器 GC 來優化速度與 CPU 負載。 對於共用主機,其中記憶體較常是一些使用中月臺的條件約束,則應該使用工作站 GC。 工作站 GC 會針對記憶體優化。

若要深入瞭解此設定,請參閱知識庫文章 :「當您在執行 Windows Server 2003 的電腦上裝載使用 ASP.NET 的 Web 應用程式時,您可能會收到錯誤訊息或電腦停止回應」 (https://support.microsoft.com/kb/911716)

停用並行垃圾收集行程

GC 有 3 個版本:伺服器、已啟用並行的工作站,以及同時停用的工作站。 並行工作站 GC 適用于用戶端案例。 就像伺服器 GC 以記憶體成本排列輸送量和延展性的優先順序一樣,並行工作站 GC 會優先處理記憶體成本的回應性。 若要優化記憶體,請在使用工作站 GC 時停用並行垃圾收集。

啟用 gcTrimCommitOnLowMemory 設定

由於 GC 會保留記憶體以供未來配置使用,因此其認可的空間可能比嚴格需要的空間還要多。 當系統記憶體負載過重時,可以減少此空間以容納情況。 啟用此設定時,GC 會評估系統記憶體負載,並在負載達到 90% 時進入修剪模式。 它會維持調整模式,直到負載降至 85%。 當條件允許時,GC 可以決定設定不會協助應用程式並忽略它。

若要設定 GC 設定

  1. 瀏覽至 %windir%\Microsoft.NET\Framework\{version} 目錄。

  2. 開啟aspnet.config檔案,然後找出 <gcServer> 元素。 如果專案不存在,請使用步驟 3 建立專案。

    ...

    <configuration> 
    <runtime> 
    <gcServer enabled="true"/> 
    </runtime> 
    </configuration>
    ...
    
  3. 在 區段中新增下列三個元素 <runtime>

    ...

    <configuration> 
    <runtime> 
    <gcServer enabled="false" />
    
    <gcConcurrent enabled="false" />
    <gcTrimCommitOnLowMemory enabled="true" />
    </runtime> 
    </configuration>
    ...
    
  4. 儲存並關閉檔案。