在一台机器上出现 DacServices 错误,而不是在另一台机器上
Posted
技术标签:
【中文标题】在一台机器上出现 DacServices 错误,而不是在另一台机器上【英文标题】:Getting DacServices error on one machine, not on another 【发布时间】:2015-11-08 03:00:33 【问题描述】:我们的流程包括在 SQL Server 11 和 10 数据库服务器上创建数据库。我们正在使用 dacpac 通过 DacServices 在 C# 中导入这些数据。这是正在使用的代码:
var dac = new DacServices(masterConnString);
using (var bacPac = BacPackage.Load(templatePath))
dac.ImportBacpac(bacPac, dealer.VSID.ToString(CultureInfo.InvariantCulture));
当我们在本地机器上运行它进行初始测试时,它按预期工作。但是,当我把它扔到服务器上时(它作为 WCF 服务的一部分运行)。我收到以下错误:
“Microsoft.SqlServer.Dac.DacServices”的类型初始化程序抛出 一个例外。
服务器堆栈跟踪:在 System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(消息 回复、MessageFault 故障、字符串操作、MessageVersion 版本、 故障转换器故障转换器)在 System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime 操作,ProxyRpc& rpc) 在 System.ServiceModel.Channels.ServiceChannel.Call(字符串动作, Boolean oneway, ProxyOperationRuntime 操作, Object[] ins, Object[] 出局,TimeSpan 超时)在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall,ProxyOperationRuntime 操作)在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage 留言)
在 [0] 处重新抛出异常:在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(消息数据& msgData, Int32 类型) 在 IWcfService.Method(String 字符串,Int32 整数)在 WcfServiceClient.Method(String string, Int32 integer)
提前致谢。
【问题讨论】:
从我读到你的问题,有一个Dll assembly
问题,我觉得这个特定的程序集是如何在本地引用的。它是否标记为 CopyLocal = true
也可以是 GAC
检查你的所有引用并确保它们在目标机器上相同
【参考方案1】:
我终于弄明白了。有问题的 DLL 是 Microsoft.SqlServer.TransactSql.ScriptDom。一旦我引用了它,一切都按预期工作。不过,还是花了很多时间才到达那个地方。
【讨论】:
以上是关于在一台机器上出现 DacServices 错误,而不是在另一台机器上的主要内容,如果未能解决你的问题,请参考以下文章
urllib3.exceptions.NewConnectionError 错误在一台机器上处理但不在另一台机器上
是否可以在一台机器上以不同的端口运行多个Zookeeper实例?
从在一台机器上工作的浏览器下载 S3 图像并在另一台机器上给出 CORS 错误