部署注意事项

本节描述部署 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

有两种方式 SQL Server Compact 4.0 可用于 ASP.NET Web 应用程序中:

  • 专用部署

  • 集中部署

有关详细信息,请参阅专用部署与集中部署 (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