2016-09-15 2 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

우리가 그것을 필요로 할 때 나는 모른다. .. 누군가 알고 있었느냐?

귀하의 도움에 감사합니다 얀!

관련 문제