2

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

20.01.2017 13:41:53 System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.SqlServer.BatchParser,版本=11.0.0.0,文化=中性,PublicKeyToken=89845dcd8080cc91”或其依赖项之一。该系统找不到指定的文件。文件名:System.Reflection.RuntimeAssembly.GetType 中的“Microsoft.SqlServer.BatchParser,版本=11.0.0.0,Culture=neutral,PublicKeyToken=89845dcd8080cc91”(RuntimeAssembly 程序集,字符串名称,布尔 throwOnError,布尔忽略大小写,ObjectHandleOnStack 类型)在系统.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase) at System.Reflection.Assembly.GetType(String name, Boolean throwOnError) at Microsoft.SqlServer.Management.Common.ServerConnection.GetStatements(String query, ExecutionTypes executionType,整数32& statementsToReverse) 在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType) at UpdatingWebconfig.Installer1.ExecuteSqlsecond(String strScript, String serverName, String dbName, String userName, String password) WRN: 程序集绑定日志记录已打开离开。要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) 设置为 1。注意:与程序集绑定失败日志记录相关的一些性能损失。要关闭此功能,请删除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。ExecuteSqlsecond(String strScript, String serverName, String dbName, String userName, String password) 警告:程序集绑定日志记录已关闭。要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) 设置为 1。注意:与程序集绑定失败日志记录相关的一些性能损失。要关闭此功能,请删除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。ExecuteSqlsecond(String strScript, String serverName, String dbName, String userName, String password) 警告:程序集绑定日志记录已关闭。要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) 设置为 1。注意:与程序集绑定失败日志记录相关的一些性能损失。要关闭此功能,请删除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。

4

1 回答 1

0

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

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

因为你的Windows是64位的,所以64位的应用程序启动时会调用64位的程序集,但是SQL Server安装是32位的,可能不包括64位的程序集,所以你要确保你有两个Microsoft.SQLServer。 32 位和 64 位的 BatchParser。您可以通过以下步骤确认这一点:

  1. 打开 C:\Windows\程序集

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

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

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

参考:链接

希望这有帮助!

于 2017-01-20T13:08:15.863 回答