【问题标题】:Error 0x80004005 when I tried to install a database with WIX尝试使用 WIX 安装数据库时出现错误 0x80004005
【发布时间】:2016-09-15 15:54:58
【问题描述】:

我正在尝试使用 WIX 安装数据库。

我已经在我的 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>

我通过在管理工作室中点击此查询获得了实例名称:

SELECT @@servicename

但是,我得到一个错误:

CreateDatabase:错误 0x80004005:无法创建数据库:“MyDatabase”,错误:未知错误
错误 26201。错误 -2147467259:未能创建 SQL 数据库:MyDatabase,错误详细信息:未知错误。
MSI (s) (FC!74) [17:43:27:786]:产品:测试 -- 错误 26201。错误 -2147467259:未能创建 SQL 数据库:MyDatabase,错误详细信息:未知错误。

CustomAction CreateDatabase 返回实际错误代码 1603(请注意,如果翻译发生在沙箱内,这可能不是 100% 准确)
操作于 17:43:27 结束:InstallFinalize。返回值 3。

我错过了什么吗?

谢谢!

【问题讨论】:

  • 错误 0x80004005 是“拒绝访问”。验证运行安装的帐户是否有足够的权限在 SQL Server 中创建数据库。
  • 嗨@YanSklyarenko,感谢您的回答。我添加了&lt;util:User Id='sa' Name='sa' Password='password' /&gt; 并与用户一起更新了 sql:SqlDatabase。我尝试使用用户 sa 在 localhost 上登录管理工作室。我可以登录并运行查询,但仍然有错误。用户(我的本地用户和 sa 用户具有 sysadmin 角色)
  • 有什么想法吗?我使用了 SQL Profiler,但我没有收到任何数据...我使用了 sysadmin 的用户,为什么访问被拒绝?
  • 不,不知道,很遗憾
  • 感谢您的尝试!如果我发现了什么,我会更新帖子。

标签: sql-server database wix


【解决方案1】:

我发现了我的问题。 我为自己的错误感到羞耻:我放了一个实例

Instance="MSSQLSERVER"

我不需要它。我还以为是

选择@@服务名称

所以,我不知道我们什么时候需要它...有人知道吗?

感谢严的帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-16
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    • 2023-02-18
    • 1970-01-01
    • 2020-12-04
    相关资源
    最近更新 更多