【问题标题】:Error during Web application deploy using windows installer使用 Windows 安装程序部署 Web 应用程序时出错
【发布时间】:2017-06-05 11:34:15
【问题描述】:

我使用 windows 安装程序制作了 Web 应用程序安装包,该包在 IIS 中托管应用程序并在 sql server 上安装数据库。它以前工作正常,但突然出现以下错误,数据库未部署在 Sql 服务器上,但 IIS 部署成功。 我在日志文件中收到以下错误

20.01.2017 13:41:53 System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.SqlServer.BatchParser,Version=11.0.0.0,Culture=neutral,PublicKeyToken=89845dcd8080cc91”或其依赖项之一。该系统找不到指定的文件。 文件名:'Microsoft.SqlServer.BatchParser,版本=11.0.0.0,文化=中性,PublicKeyToken=89845dcd8080cc91' 在 System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly 程序集,字符串名称,布尔 throwOnError,布尔 ignoreCase,ObjectHandleOnStack 类型) 在 System.Reflection.RuntimeAssembly.GetType(字符串名称,布尔 throwOnError,布尔 ignoreCase) 在 System.Reflection.Assembly.GetType(字符串名称,布尔 throwOnError) 在 Microsoft.SqlServer.Management.Common.ServerConnection.GetStatements(字符串查询,ExecutionTypes executionType,Int32& statementsToReverse) 在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(字符串 sqlCommand,ExecutionTypes executionType) 在 UpdatingWebconfig.Installer1.ExecuteSqlsecond(字符串 strScript、字符串服务器名、字符串 dbName、字符串用户名、字符串密码) 警告:程序集绑定日志记录已关闭。 要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) 设置为 1。 注意:有一些与程序集绑定失败日志相关的性能损失。 要关闭此功能,请删除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。

【问题讨论】:

    标签: c# sql-server sql-server-2008 web-deployment web-setup-project


    【解决方案1】:

    这里有一个可能的解决方案:

    可能 SQL Server 是 32 位,而 Windows 是 64 位。

    由于你的 Windows 是 64 位的,当启动 64 位应用程序时, 它将调用64位的程序集,但SQL Server安装是 可能不包括 32 位和 64 位程序集,所以你应该 确保您同时拥有 32 位的 Microsoft.SQLServer.BatchParser 和 64位。您可以通过以下步骤确认这一点:

    1. 打开 C:\Windows\assembly

    2. 找到Microsoft.SQLServer.BatchParser,应该有两个。

    3. 右键单击它们,确保其中一个是 AMD64,另一个是 X86。

    如果找不到 64 位的 Microsoft.SQLServer.BatchParser, 请下载并安装 Microsoft SQL Server 2008 R2 Shared 管理对象,因为 Microsoft.SqlServer.BatchParser 程序集包含在 Microsoft SQL Server SMO 中。

    参考:link

    希望对您有所帮助!

    【讨论】:

    • 感谢您的回复。有四个 Microsoft.SqlServer.BatchParser 版本 10 和 12 用于 x86 和 Microsoft.SqlServer.BatchParser 版本 12 和 11 的 amd64
    • 你需要版本11(用于错误信息)版本11是SQLServer 2012。你有什么版本的SQLServer?尝试安装两个用于 SQL 2012 的 MSI,其顺序与依赖后一个的顺序相同。 1. SharedManagementObjects.msi 2. SQLSysClrTypes.msi 可以从here下载
    • 我有 sql server 2014,当我从你提供的链接安装时,它说更高版本已安装,请先卸载它。
    • 当我卸载它时,它显示访问被拒绝错误和是错误说版本 11 但它不允许我安装版本 11
    • 您需要 x86 版本 11 文件。您是否从最后一个链接安装“ENU\x86\SharedManagementObjects.msi”和“ENU\x86\SQLSysClrTypes.msi”? (记得在管理员模式下运行)
    猜你喜欢
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 2016-11-23
    • 2017-09-30
    • 2014-03-01
    • 1970-01-01
    相关资源
    最近更新 更多