2009-03-16 9 views
1

Ist es möglich, dieselben Assemblys in anderen BizTalk 2006-Anwendungen unterschiedlich zu verhalten? Ist es beispielsweise möglich, innerhalb einer Assembly Zugriff auf die BizTalk-Anwendungs-ID oder den Anwendungs-ID-Namen zu haben, der diese Instanz verwendet, und sie dann für unterschiedliche BizTalk-Anwendungen anders zu gestalten?BizTalk 2006, gleiche Assemblys mit unterschiedlichem Verhalten in verschiedenen BizTalk-Anwendungen

Oder könnte es anders gemacht werden, anstatt die Baugruppen zu versionieren?

Antwort

0

Ich löste es mit Hilfe von Versionierung, ich fand keinen anderen Weg.

Ich wollte mehrere "Instanzen" der gleichen BizTalk-Anwendung zusammen laufen lassen, aber mit verschiedenen Konfigurationen (nicht nur verschiedene Bindungen), um verschiedene Umgebungen zu simulieren, aber die gleiche BizTalk-Instanz verwenden. So könnte es mit anderen Software-Stücken interagieren, die ebenfalls in derselben Maschine repliziert werden, und auch mit externen Systemen, die dieselben Umgebungen und auch verschiedene Datenbanken darstellen.

Das Problem war, dass ich verschiedene Verbindungszeichenfolgen verwenden musste, um verschiedene DBs zu definieren, jede für jede der Umgebungen in der Datei BTSNTSvc.Exe.Config. Aber da die Assemblys die gleichen waren, hatte ich keine Möglichkeit, jede BizTalk-Anwendung dazu zu bringen, eine eigene Verbindungszeichenfolge zu verwenden, es sei denn, jede Assembly wusste im Runtime, wie sie diese Entscheidung treffen musste (z. B. zu welcher Umgebung sie gehörte).

Im Moment habe ich Skripte, die mehrere Versionen kompilieren und bereitstellen und den Namen der zu verwendenden Verbindungszeichenfolge sowie die Versionen der Assemblys ändern (mithilfe von Kompilierungssymbolen).

Danke für Ihre Hilfe.

3

Was genau möchten Sie erreichen? Welche Art von Verhaltensunterschieden versuchen Sie einzuführen?

Die Wahrheit der Sache ist, dass es keine narrensichere Möglichkeit gibt, herauszufinden, in welcher BizTalk-Anwendung Ihr Code ausgeführt wird, da das Konzept der Anwendung in BizTalk ein reines Verwaltungsartefakt ist. Unter bestimmten Umständen können Sie mithilfe von ExplorerOM zur Verwaltungsdatenbank wechseln und einige Abfragen ausführen, um herauszufinden, zu welcher Anwendung ein Artefakt (Port, Orchestrierung) gehört. Es kann jedoch sehr langsam sein und Sie müssen möglicherweise die Sicherheit anpassen.

Es gibt möglicherweise auch nicht die erwarteten Ergebnisse abhängig davon, ob Sie Nachrichten haben, die Anwendungsgrenzen durch Messaging oder Orchestrierung aufrufen.

Vielleicht, wenn Sie ein bisschen mehr über das, was Sie brauchen, für diese könnte ich versuchen, bessere Vorschläge zu bieten!

0

Ich denke, Versionierung der verschiedenen Baugruppen klingt genau das, wonach Sie suchen?

Verwandte Themen