'错误-2147467259:无法在WiX中创建SQL数据库'

问题描述:

我想在使用WiX 3.6的安装过程中创建数据库。我遵循了很多教程,但我认为我做错了一些事情。'错误-2147467259:无法在WiX中创建SQL数据库'

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
    xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" 
    xmlns:sql="http://schemas.microsoft.com/wix/SqlExtension"> 

    <Product Id="{A704CA9E-2833-4276-A8A8-148F1047332F}" Name="DbInstallerTest" Language="1033" Version="1.0.0.0" Manufacturer="Microsoft" UpgradeCode="2de42bd8-acc2-48bf-b3c6-09745d3a2ea4"> 
     <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> 

     <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 
     <MediaTemplate /> 

     <Feature Id="ProductFeature" Title="DbInstallerTest" Level="1"> 
      <ComponentGroupRef Id="ProductComponents" /> 
     </Feature> 
    </Product> 

    <Fragment> 
     <Directory Id="TARGETDIR" Name="SourceDir"> 
      <Directory Id="ProgramFilesFolder"> 
       <Directory Id="INSTALLFOLDER" Name="DbInstallerTest" /> 
      </Directory> 
     </Directory> 
    </Fragment> 

    <Fragment> 
     <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> 

      <Component Id="CMPDbInsatller" 
         Guid="{1749E57D-9CE4-42F8-924C-2A2E368B51E4}"> 
       <CreateFolder Directory="INSTALLFOLDER"/> 
       <util:User Id="SqlUser" 
          Name="sa" 
          Password="[email protected]"/> 
      </Component> 
      <Component Id="cmp2" 
         Guid="{C3596364-61A0-4628-9153-1BA11DB4B778}"> 
       <CreateFolder Directory="INSTALLFOLDER"/> 
       <sql:SqlDatabase Id="Id_db" 
           Database="TestDatabase1" 
           Server="(local)\SQLExpress" 
           CreateOnInstall="yes" 
           User="SqlUser" 
           DropOnUninstall="yes"> 
       </sql:SqlDatabase> 
      </Component> 
     </ComponentGroup> 
    </Fragment> 
</Wix> 

上面的代码给出了以下错误。

Error -2147467259: failed to create SQL database: TestDatabase1. error detail: Unknown error.

这里是日志的内容,

=== Logging started: 2/18/2013 11:00:59 === 
Action 11:00:59: INSTALL. 
Action start 11:00:59: INSTALL. 
Action 11:00:59: FindRelatedProducts. Searching for related applications 
Action start 11:00:59: FindRelatedProducts. 
Action ended 11:00:59: FindRelatedProducts. Return value 1. 
Action 11:00:59: LaunchConditions. Evaluating launch conditions 
Action start 11:00:59: LaunchConditions. 
Action ended 11:00:59: LaunchConditions. Return value 1. 
Action 11:00:59: ValidateProductID. 
Action start 11:00:59: ValidateProductID. 
Action ended 11:00:59: ValidateProductID. Return value 1. 
Action 11:00:59: CostInitialize. Computing space requirements 
Action start 11:00:59: CostInitialize. 
Action ended 11:00:59: CostInitialize. Return value 1. 
Action 11:00:59: FileCost. Computing space requirements 
Action start 11:00:59: FileCost. 
Action ended 11:00:59: FileCost. Return value 1. 
Action 11:00:59: CostFinalize. Computing space requirements 
Action start 11:00:59: CostFinalize. 
Action ended 11:00:59: CostFinalize. Return value 1. 
Action 11:00:59: MigrateFeatureStates. Migrating feature states from related applications 
Action start 11:00:59: MigrateFeatureStates. 
Action ended 11:00:59: MigrateFeatureStates. Return value 0. 
Action 11:00:59: ExecuteAction. 
Action start 11:00:59: ExecuteAction. 
Action start 11:01:01: INSTALL. 
Action start 11:01:01: FindRelatedProducts. 
Action ended 11:01:01: FindRelatedProducts. Return value 0. 
Action start 11:01:01: LaunchConditions. 
Action ended 11:01:01: LaunchConditions. Return value 1. 
Action start 11:01:01: ValidateProductID. 
Action ended 11:01:01: ValidateProductID. Return value 1. 
Action start 11:01:01: CostInitialize. 
Action ended 11:01:01: CostInitialize. Return value 1. 
Action start 11:01:01: FileCost. 
Action ended 11:01:01: FileCost. Return value 1. 
Action start 11:01:01: CostFinalize. 
Action ended 11:01:01: CostFinalize. Return value 1. 
Action start 11:01:01: MigrateFeatureStates. 
Action ended 11:01:01: MigrateFeatureStates. Return value 0. 
Action start 11:01:01: InstallValidate. 
Action ended 11:01:01: InstallValidate. Return value 1. 
Action start 11:01:01: RemoveExistingProducts. 
Action ended 11:01:01: RemoveExistingProducts. Return value 1. 
Action start 11:01:01: InstallInitialize. 
Action ended 11:01:01: InstallInitialize. Return value 1. 
Action start 11:01:01: ProcessComponents. 
Action ended 11:01:01: ProcessComponents. Return value 1. 
Action start 11:01:01: UnpublishFeatures. 
Action ended 11:01:01: UnpublishFeatures. Return value 1. 
Action start 11:01:01: UninstallSqlData. 
Action ended 11:01:02: UninstallSqlData. Return value 1. 
Action start 11:01:02: RemoveFiles. 
Action ended 11:01:02: RemoveFiles. Return value 0. 
Action start 11:01:02: RemoveFolders. 
Action ended 11:01:02: RemoveFolders. Return value 1. 
Action start 11:01:02: CreateFolders. 
Action ended 11:01:02: CreateFolders. Return value 1. 
Action start 11:01:02: ConfigureUsers. 
Action start 11:01:02: CreateUserRollback. 
Action ended 11:01:02: CreateUserRollback. Return value 1. 
Action start 11:01:02: CreateUser. 
Action ended 11:01:02: CreateUser. Return value 1. 
Action ended 11:01:02: ConfigureUsers. Return value 1. 
Action start 11:01:02: InstallFiles. 
Action ended 11:01:02: InstallFiles. Return value 1. 
Action start 11:01:02: InstallSqlData. 
Action start 11:01:19: CreateDatabase. 
Action ended 11:01:19: CreateDatabase. Return value 1. 
Action ended 11:01:19: InstallSqlData. Return value 1. 
Action start 11:01:19: RegisterUser. 
Action ended 11:01:19: RegisterUser. Return value 1. 
Action start 11:01:19: RegisterProduct. 
Action ended 11:01:19: RegisterProduct. Return value 1. 
Action start 11:01:19: PublishFeatures. 
Action ended 11:01:19: PublishFeatures. Return value 1. 
Action start 11:01:19: PublishProduct. 
Action ended 11:01:19: PublishProduct. Return value 1. 
Action start 11:01:19: InstallFinalize. 
CreateDatabase: Error 0x80004005: failed to create to database: 'TestDatabase1', error: 

unknown error 
Error 26201. Error -2147467259: failed to create SQL database: TestDatabase1, error detail: 

unknown error. 
MSI (s) (94!44) [11:01:47:973]: Product: DbInstallerTest -- Error 26201. Error -2147467259: 

failed to create SQL database: TestDatabase1, error detail: unknown error. 

CustomAction CreateDatabase returned actual error code 1603 (note this may not be 100% 

accurate if translation happened inside sandbox) 
Action ended 11:01:47: InstallFinalize. Return value 3. 
Action ended 11:01:48: INSTALL. Return value 3. 
Action ended 11:01:48: ExecuteAction. Return value 3. 
Action ended 11:01:48: INSTALL. Return value 3. 
=== Logging stopped: 2/18/2013 11:01:48 === 
MSI (c) (C0:94) [11:01:48:208]: Product: DbInstallerTest -- Installation failed. 

MSI (c) (C0:94) [11:01:48:209]: Windows Installer installed the product. Product Name: 

DbInstallerTest. Product Version: 1.0.0.0. Product Language: 1033. Manufacturer: Microsoft. 

Installation success or error status: 1603. 

我在做什么错在这里?

Err 26201更有用。您还应该在事件日志中看到更多信息。

您的代码表明您正在SQL实例上使用混合模式并将身份验证用作SQL登录名。这表明问题很可能是您的SQL服务帐户没有权限在默认位置创建MDF和LDF文件。

更多信息请参见本主题:

Error 26201. Error -2147467259: failed to create SQL database

我们周围追逐这个错误了一个星期前最后通过进入SQL   Server配置管理器→SQL Server网络配置→协议解决它对于MSSQLSERVER(对于我们来说,默认实例)→启用命名管道和TCP/IP协议。

因此,我的WiX安装程序日志中也出现错误,但稍有不同。

环境:

  • 的WebServer =的Windows 2008 R2
  • SQLServer的= Windows 2008的32位的SQL Server 2008 R2标准
  • 混合模式身份验证
  • 默认SQL实例

错误:

ExecuteSqlStrings: Entering ExecuteSqlStrings in C:\Windows\Installer\MSI1EC7.tmp, version 3.6.3303.0

ExecuteSqlStrings: Error 0x80004005: failed to connect to database: 'DatabaseNameBla'

Error 26203. Failed to connect to SQL database. (-2147467259 DatabaseNameBla ) MSI (s) (20!30) [10:16:32:225]: Product: Bla Services -- Error 26203. Failed to connect to SQL database. (-2147467259 DatabaseNameBla )

研究:

  • 实例DB似乎只有1.6 GB留在硬盘上。 < <这可能是不好的...
  • 我的用户是sysadmin
  • 通过SQL管理工具访问对同一个用户没有问题。
  • SLQ日志没有任何内容来帮助解决错误。只是噪音。

我的解决方案:

  • VM拥有50 GB的免费
  • 新的数据库实例的d驱动
  • 新实例设置一个d驱动混合模式
  • 重新安装。成功!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

摘要:

所以试图找出这笔交易小时后。在此错误的情况下,它与硬盘驱动器的可用空间大小有关。由于SQL Server在生产中,我们无法扩展C驱动器以查看是否修复了默认实例。

我也遇到了这个问题,我浏览了很多论坛来解决这个问题。这是唯一对我有用的东西。在我的电脑时,SQL Server Express版本数据库的创建与 -2147467259失败:无法创建SQL数据库:

After days of hacking I finally found the solution! All you need to do is use .\sqlexpress instead of localhost\sqlexpress or 127.0.0.1\sqlexpress in your connection string. I think (and I might be terribly wrong here) when you use .\sqlexpress in connection string installer uses Shared Memory instead of Named Pipes or TCP/IP.

来源:Solution to -2147467259: failed to create SQL database