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
, 나는 오류가 발생
내가 뭔가를 놓쳤습니까?
감사합니다.
0x80004005 오류는 '액세스 거부'입니다. 데이터베이스를 만들려면 설치를 실행하는 계정에 SQL Server가 충분한 지 확인하십시오. –
안녕하세요 @ YanSklyarenko, 당신의 대답에 감사드립니다. 나는 '를 추가하고 사용자로 sql : SqlDatabase를 업데이트했다. 사용자 sa와 함께 localhost에 관리 스튜디오에 로그인하려고했습니다. 로그인하여 쿼리를 실행할 수는 있지만 여전히 오류가 있습니다. 사용자 (내 로컬 사용자와 sa 사용자는 sysadmin 역할을 가짐) –
Bob
SQL 프로파일 러를 사용했지만 데이터를받지 못했습니다 ... 왜 sysadmin을 사용하여 액세스가 거부 되었습니까? – Bob