2013-02-18 14 views
5

Voglio creare un database nel processo di installazione usando WiX 3.6. Ho seguito molti tutorial, ma penso che ci sia qualcosa che sto sbagliando.'Errore -2147467259: impossibile creare il database SQL' in WiX

<?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> 

Il codice sopra riportato restituisce il seguente errore.

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

Ecco il contenuto del registro,

=== 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. 

che cosa sto facendo male qui?

risposta

2

Err 26201 è più utile. Dovresti anche vedere più informazioni nei registri eventi.

Il codice indica che si sta utilizzando la modalità mista sull'istanza SQL e l'autenticazione come accesso SQL. Ciò indica che il problema è probabile che l'account del servizio SQL non disponga delle autorizzazioni per creare i file MDF e LDF nelle posizioni predefinite.

Vedere questa discussione per ulteriori informazioni:

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

6

Abbiamo inseguito questo errore in giro per una settimana prima finalmente risolvendolo andando in SQL   server Gestore configurazione di rete → SQL Server Configurazione → Protocolli per MSSQLSERVER (per noi, l'istanza predefinita) → Abilitazione dei named pipe e dei protocolli TCP/IP.

1

Quindi sto ottenendo anche un errore nei miei registri di installazione WiX, anche se leggermente diverso.

Ambiente:

  • WebServer = Windows 2008 R2
  • SQLServer = Windows 2008 a 32 bit con SQL Server 2008 R2 Standard
  • autenticazione in modalità mista
  • predefinito istanza SQL

Errore:

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 )

di ricerca:

  • DB di istanza sembra avere solo 1,6 GB lasciato sul disco rigido. < <
  • Il mio utente è sysadmin
  • L'accesso tramite gli strumenti di gestione SQL non ha problemi con lo stesso utente.
  • I registri SLQ non contengono nulla per l'errore. Solo rumore.

mia soluzione:

  • VM dispone di un'unità D con 50 GB di spazio libero
  • nuova istanza di database su D Attacco
  • nuova istanza Imposta per Mixed Mode
  • reinstallati. Successo!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Sommario:

Così, dopo ore di cercare di capire che cosa l'affare è stato. Nell'istanza di questo errore, era correlato alla dimensione dello spazio libero del disco rigido. Poiché SQL Server era in produzione, non è stato possibile espandere l'unità C per vedere se è stata corretta l'istanza predefinita.

2

Mi trovavo anche di fronte a questo problema esatto e ho consultato molti forum per risolvere il problema. Questa è stata l'unica cosa che ha funzionato per me. Sul mio computer, creazione del database SQL Server Express Edition non riuscita con -2147467259: Impossibile creare il database 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.

Fonte: Solution to -2147467259: failed to create SQL database

Problemi correlati