2016-09-15 17 views
0

WIXでデータベースをインストールしようとしています。WIXでデータベースをインストールしようとしたときに0x80004005エラーが発生しました

私はすでにWindows7(32ビット)にSQL Server 2008 expressをインストールしています。このインストールでは、TCP/IPが有効になっており、SQL Serverサービスが実行されています。

私はSQL ServerにSQL ServerとWindows認証を使用しています。私は両方のコードを試してみました - コンポーネントにユーザーを追加しました。

コードは非常に基本的なものです:私は管理のスタジオでこのクエリをテーピングして、インスタンス名を持っていた

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
    xmlns:sql="http://schemas.microsoft.com/wix/SqlExtension"> 
    <Product Id="*" Name="NewDatabaseInstaller" Language="1033" 
      Version="1.0.0.0" Manufacturer="My Company" 
      UpgradeCode="17ef693b-3ab5-4788-a6b5-70eeabc13497"> 
     <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> 
     <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 
     <MediaTemplate EmbedCab="yes" /> 
     <Feature Id="ProductFeature" Title="NewDatabaseInstaller" Level="1"> 
      <ComponentGroupRef Id="ProductComponents" /> 
     </Feature> 
    </Product> 
    <Fragment> 
     <Directory Id="TARGETDIR" Name="SourceDir"> 
      <Directory Id="ProgramFilesFolder"> 
       <Directory Id="INSTALLFOLDER" Name="NewDatabaseInstaller" /> 
      </Directory> 
     </Directory> 
    </Fragment> 
    <Fragment> 
     <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> 
      <Component Id="cmpSqlDatabase" Guid="{F950605D-AA59-43E6-AB19-9452F6BEC649}" KeyPath="yes"> 
       <sql:SqlDatabase Id="sqlDatabase_MyDatabase" Server="localhost" 
        Instance="MSSQLSERVER" Database="MyDatabase" 
        CreateOnInstall="yes" DropOnUninstall="yes" 
        ContinueOnError="no" /> 
      </Component> 
     </ComponentGroup> 
    </Fragment> 
</Wix> 

CreateDatabase: Error 0x80004005: failed to create to database: 'MyDatabase', error: unknown error
Error 26201. Error -2147467259: failed to create SQL database: MyDatabase, error detail: unknown error.
MSI (s) (FC!74) [17:43:27:786]: Product: Test -- Error 26201. Error -2147467259: failed to create SQL database: MyDatabase, 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 17:43:27: InstallFinalize. Return value 3.

:しかし

SELECT @@servicename 

、私はエラーを取得します

私は何かを見逃しましたか?

ありがとうございます!

+0

エラー0x80004005は「アクセス拒否」です。データベースを作成するには、インストールを実行しているアカウントでSQL Serverに十分な権限があることを確認します。 –

+0

こんにちは@YanSklyarenko、あなたの答えに感謝します。 ''を追加し、ユーザーにsql:SqlDatabaseを更新しました。私はユーザーsaとlocalhost上の管理スタジオにログインしようとしました。ログインしてクエリを実行できますが、まだエラーがあります。ユーザー(私のローカルユーザーとsaユーザーにはsysadminの役割があります) – Bob

+0

私はSQLプロファイラを使用しましたが、私はデータを受け取りませんでした...私はsysadminでユーザを使用しました。なぜアクセスが拒否されましたか? – Bob

答えて

0

私の問題が見つかりました。 私は私のエラーの恥ずかしい:私は、私はそれを必要としなかったインスタンス

Instance="MSSQLSERVER"

を置きます。私はそれがだと思った

SELECT @@servicename

私はそれがいつ必要なのかわかりません...誰かが知っていましたか?

ありがとうございました。