使用Windows安装程序部署Web应用程序时出错

时间:2017-01-20 13:00:03

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

我使用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,Version = 11.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'      at System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly assembly,String name,Boolean throwOnError,Boolean ignoreCase,ObjectHandleOnStack type)      at System.Reflection.RuntimeAssembly.GetType(String name,Boolean throwOnError,Boolean ignoreCase)      在System.Reflection.Assembly.GetType(String name,Boolean throwOnError)      在Microsoft.SqlServer.Management.Common.ServerConnection.GetStatements(String query,ExecutionTypes executionType,Int32& statementsToReverse)      在Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand,ExecutionTypes executionType)      在UpdatingWebconfig.Installer1.ExecuteSqlsecond(String strScript,String serverName,String dbName,String userName,String password)   警告:装配绑定日志记录已关闭。   要启用程序集绑定失败日志记录,请将注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)设置为1。   注意:程序集绑定失败日志记录会导致一些性能损失。   要关闭此功能,请删除注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog]。

1 个答案:

答案 0 :(得分:0)

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

  

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

     

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

     
      
  1. 打开C:\ Windows \ assembly

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

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

  6.         

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

参考:link

希望这有帮助!