部署考量因素

本節描述部署 SQL Server Compact 應用程式時的兩個主要考量因素:

除了這些主題之外,如果您要升級現有的 SQL Server 資料庫,請參閱<從舊版升級 (SQL Server Compact)>。

重要

SQL Server Compact 4.0 最適合與 ASP.NET Web 應用程式搭配使用,同時提供了簡便的方式來使用入門網站的資料庫。

SQL Server Compact 4.0 最適合當做 ASP.NET Web 應用程式的資料庫使用。Web 應用程式必須以中度信任部分信任執行,而 SQL Server Compact 4.0 同樣能夠以中度信任或部分信任層級執行。

ASP.NET 應用程式中的 SQL Server Compact 4.0

在 ASP.NET Web 應用程式中可透過兩種方式使用 SQL Server Compact 4.0:

  • 私下部署

  • 集中部署

如需詳細資訊,請參閱<私下部署與集中部署 (SQL Server Compact)

以部分信任或中度信任執行 SQL Server Compact 4.0 的權限

ASP.NET 會使用不同的組態 (.config) 檔,來維護授與不同信任層級之應用程式的權限集。您必須變更中度信任的 .config 檔,以便提供適當權限給 SQL Server Compact 4.0,使其能以部分信任或中度信任執行。

  • 若是 .NET Framework 4,權限會在安裝期間自動設定,因此不需要進行額外的設定。

  • 若為 .NET Framework 3.5 SP1,請遵循下列步驟:

    1. 將登錄權限類別加入至 Web_MediumTrust.config 檔的 SecurityClasses 區段中。

      <SecurityClasses>
      <SecurityClass Name="ReflectionPermission" Description="System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      <SecurityClass Name="RegistryPermission" Description="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      </SecurityClasses>
      
    2. 以必要的權限在 Web_MediumTrust.config 檔中建立新的權限集。

      <PermissionSet class="NamedPermission" version="1" Name="SqlCe_Trust">
          <IPermission class="SecurityPermission" version="1" Flags="UnmanagedCode, SkipVerification"/>
          <IPermission class="EnvironmentPermission" version="1" Read="PROCESSOR_ARCHITECTURE"/>
          <IPermission class ="RegistryPermission" version="1" Read="HKEY_LOCAL_MACHINE\" />
        </PermissionSet>
      
    3. 在 Web_MediumTrust.config 檔中放入下面各行,以便將權限集套用至 SQL Server Compact DLL。

      CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="ASP.Net">
        <IMembershipCondition class="UrlMembershipCondition" version="1" Url="$AppDirUrl$/*"/>
      

      在組態 (.config) 檔中,於上述各行後面附加下列程式碼。

      <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="SqlCe_Trust" 
          Name="SqlCe_Strong_Name"  Description="This code group grants code signed with the SQLCE strong   name SqlCe_Trust. ">
         <IMembershipCondition class="StrongNameMembershipCondition" version="1"  
       PublicKeyBlob=" 0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8
      "/>
       </CodeGroup>
      

請參閱

其他資源

How to: Create an ASP.NET Web Application using SQL Server Compact