我使用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]。
答案 0 :(得分:0)
这里有一个可能的解决方案:
可能是SQL Server是32位,Windows是64位。
由于你的Windows是64位,当64位应用程序启动时, 它将调用64位的程序集,但SQL Server安装是 可能不包括32位和64位组件,因此您应该制作 确保你有32位的Microsoft.SQLServer.BatchParser和 64位。您可以通过以下步骤确认:
打开C:\ Windows \ assembly
查找Microsoft.SQLServer.BatchParser,应该有两个。
- 醇>
右键单击它们,确保其中一个是AMD64,另一个是X86。
如果找不到64位的Microsoft.SQLServer.BatchParser, 请下载并安装Microsoft SQL Server 2008 R2 Shared 管理对象,因为Microsoft.SqlServer.BatchParser 程序集包含在Microsoft SQL Server SMO中。
参考:link
希望这有帮助!