SSIS 2012项目连接管理器错误

时间:2013-03-08 15:05:08

标签: sql-server ssis sql-server-2012

基本上
我有一个包含4个包的项目。所有这些都有不同的连接管理器,除了一个在两个包之间共享的连接管理器,所以我把它作为一个项目连接管理器。

  • 如果我尝试构建项目,我会收到以下错误。
  • 如果我将项目CM更改为包CM,则构建正常

显然,我有一个项目CM的事实是问题。

我可以缺少什么?

Error   21  System.ArgumentException: An item with the same key has already been added.  
   at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)   
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)  
   at Microsoft.SqlServer.Dts.Runtime.ReferenceId.ReferenceMap.Add(String key, String value, Boolean isExternal)  
   at Microsoft.SqlServer.Dts.Runtime.ReferenceId.RefIdProducer.AddRefIdAttribute(XmlElement element, String objectName, String objectId, ReferenceParserState state)   
   at Microsoft.SqlServer.Dts.Runtime.ReferenceId.RefIdProducer.GenerateRefId(XmlElement element, ReferenceParserState state)    
   at Microsoft.SqlServer.Dts.Runtime.ReferenceId.RefIdProducer.ProcessElement(XmlElement element, ReferenceParserState state)    
   at Microsoft.SqlServer.Dts.Runtime.ReferenceId.RefIdConverter.MapRefIds(IDTSPackage100 package, IDTSInfoEvents100 events, XmlDocument document)    
   at Microsoft.SqlServer.Dts.Runtime.DTSManagedXmlSerializationHelper.AfterSavePackageToXML(IDTSPackage100 package, IDTSInfoEvents100 events, String& packageXml)     
   at Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSPackagePersist100.ClonePackageToXML(Object& pvDestination, Boolean vbReturnDOM, IDTSEvents100 pEvents)    
   at Microsoft.SqlServer.Dts.Runtime.Project.SavePackage(IProjectStorage storage, Package package, String streamName, Boolean preserveVersionGuid)    
   at Microsoft.SqlServer.Dts.Runtime.Project.SavePackage(Package package, String streamName, Boolean preserveVersionGuid)   
   at Microsoft.DataTransformationServices.Project.DataTransformationsProjectBuilder.IncrementalBuildThroughObj(IOutputWindow outputWindow)  
   at Microsoft.DataTransformationServices.Project.DataTransformationsProjectBuilder.BuildIncremental(IOutputWindow outputWindow)   

2 个答案:

答案 0 :(得分:10)

如果您有两次相同的连接管理器(例如:在两个软件包之间复制)并且您将其中一个连接管理器作为项目连接,则会发生这种情况。

第一个包将显示"(项目)remoteSystem"的连接管理器。第二个包仍将显示" remoteSystem",并且不会显示新的项目级连接。

如果删除第二个包中的包级连接,则a)解决错误,b)项目级连接管理器将变为可见。

然后,您必须浏览引用已删除的连接管理器的所有组件,并将它们重定向到新的项目级连接。

答案 1 :(得分:1)

将CM移回包,然后返回项目,将其解析为我可以构建的位置。