2013-03-08 12 views
7

Zasadniczo:
Mam projekt z 4 pakietami. Wszyscy oni mają różnych menedżerów połączeń, z wyjątkiem jednego, który jest dzielony między 2 pakiety, więc zrobiłem z niego menedżera połączeń projektowych.SSIS 2012 Błąd menedżera połączeń projektu

  • Jeśli spróbuję zbudować projekt, otrzymam błąd poniżej.
  • Jeśli zmienię CM projekt na cm Pakiet, buduje grzywny

Tak oczywiście fakt, że mam CM projekt jest problem.

Czego mi brakuje?

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) 
+0

Najwyraźniej zdefiniowano połączenie w pakiecie o tej samej nazwie co projekt CM. Może znajdować się w dowolnym pakiecie, a nie tylko w tych, które zamierzasz używać projektu CM. –

+0

Wpadłem dzisiaj na to. Przeniesienie CM z powrotem do pakietu, a następnie z powrotem do projektu, rozwiązało go tam, gdzie mogłem zbudować. –

+0

@JohnMo Dodaj pomocny komentarz jako odpowiedź, aby pytanie to nie pojawiło się jako odpowiedź dla użytkowników SO. –

Odpowiedz

0

Przesuwanie CM powrotem do opakowania, a następnie z powrotem do projektu rozwiązany go do miejsca, gdzie mógłbym zbudować.

7

Występuje, gdy masz dwa razy tego samego menedżera połączeń (np. Skopiowano między 2 pakietami) i promujesz jedno z nich jako połączenie projektu.

Pierwszy pakiet pokaże menedżera połączeń "remoteSystem (project)". Drugi pakiet nadal będzie wyświetlał "remoteSystem", a nowe połączenie na poziomie projektu nie będzie wyświetlane.

Jeśli usuniesz połączenie na poziomie pakietu w drugim pakiecie, a) rozwiążesz błąd, b) menedżer połączeń na poziomie projektu stanie się widoczny.

Następnie należy przejść przez wszystkie komponenty, które odwołują się do usuniętego menedżera połączeń i przekierować je do nowego połączenia na poziomie projektu.

Powiązane problemy