Gibt es eine Möglichkeit, das Ein- oder Ausschalten eines Empfangsstandortes in BizTalk zu automatisieren? Es scheint, als ob es eine Art von API oder so etwas für diese Art von Sache geben sollte. Ich würde lieber in C# arbeiten, aber WMI oder irgendeine Art von Skript würde auch funktionieren.Gibt es eine Möglichkeit, eine BizTalk-Empfangsadresse durch Code ein- oder auszuschalten?
Antwort
Neben ExplorerOM können Sie, wie Sie herausgefunden haben, auch Empfangseinstellungen (und Steuerung von Sendeports) mit WMI aktivieren/deaktivieren.
Ich habe ein Beispiel PowerShell-Skript, das zeigt, wie Sie diese Dinge tun here, wenn Sie interessiert sind.
Ich fand eine Lösung. Es scheint, dass die Microsoft.BizTalk.ExplorerOM.dll das ist, was ich wollte. Hier ist ein Auszug aus der BizTalk-Dokumentation, die alle anderen loszulegen sollte:
using System;
using Microsoft.BizTalk.ExplorerOM;
public static void EnumerateOrchestrationArtifacts()
{
// Connect to the local BizTalk Management database
BtsCatalogExplorer catalog = new BtsCatalogExplorer();
catalog.ConnectionString = "Server=.;Initial Catalog=BizTalkMgmtDb;Integrated Security=SSPI;";
// Enumerate all orchestrations and their ports/roles
Console.WriteLine("ORCHESTRATIONS: ");
foreach(BtsAssembly assembly in catalog.Assemblies)
{
foreach(BtsOrchestration orch in assembly.Orchestrations)
{
Console.WriteLine(" Name:{0}\r\n Host:{1}\r\n Status:{2}",
orch.FullName, orch.Host.Name, orch.Status);
// Enumerate ports and operations
foreach(OrchestrationPort port in orch.Ports)
{
Console.WriteLine("\t{0} ({1})",
port.Name, port.PortType.FullName);
foreach(PortTypeOperation operation in port.PortType.Operations)
{
Console.WriteLine("\t\t" + operation.Name);
}
}
// Enumerate used roles
foreach(Role role in orch.UsedRoles)
{
Console.WriteLine("\t{0} ({1})",
role.Name, role.ServiceLinkType);
foreach(EnlistedParty enlistedparty in role.EnlistedParties)
{
Console.WriteLine("\t\t" + enlistedparty.Party.Name);
}
}
// Enumerate implemented roles
foreach(Role role in orch.ImplementedRoles)
{
Console.WriteLine("\t{0} ({1})",
role.Name, role.ServiceLinkType);
}
}
}
}
Ein Nachteil, anscheinend diese DLL nicht 64-Bit unterstützt. Da ich nur ein einfaches Dienstprogramm schreibe, ist es keine große Sache für mich (nur kompilieren als 32-Bit), aber es ist etwas zu beachten.
kann ich für Zugriff verwenden remote Biztalk Server ?? – Kiquenet
Hey Alhambraeidos, wenn ich dich richtig verstehe, kannst du es. Ich habe dies verwendet, um eine kleine Windows-App zu erstellen, mit der ich einen Empfangsort auswählen und ausschalten kann. –
Als Antwort auf Alhambraeidos Kommentar. Hier sind einige Auszüge von Code, den ich in einer Windows-Anwendung verwendet, um einen Remote-Receive Location zu deaktivieren:
/// <summary>
/// Gets or sets the biz talk catalog.
/// </summary>
/// <value>The biz talk catalog.</value>
private BtsCatalogExplorer BizTalkCatalog { get; set; }
/// <summary>
/// Initializes the biz talk artifacts.
/// </summary>
private void InitializeBizTalkCatalogExplorer()
{
// Connect to the local BizTalk Management database
BizTalkCatalog = new BtsCatalogExplorer();
BizTalkCatalog.ConnectionString = "server=BiztalkDbServer;database=BizTalkMgmtDb;integrated security=true";
}
/// <summary>
/// Gets the location from biz talk.
/// </summary>
/// <param name="locationName">Name of the location.</param>
/// <returns></returns>
private ReceiveLocation GetLocationFromBizTalk(string locationName)
{
ReceivePortCollection receivePorts = BizTalkCatalog.ReceivePorts;
foreach (ReceivePort port in receivePorts)
{
foreach (ReceiveLocation location in port.ReceiveLocations)
{
if (location.Name == locationName)
{
return location;
}
}
}
throw new ApplicationException("The following receive location could not be found in the BizTalk Database: " + locationName);
}
/// <summary>
/// Turns the off receive location.
/// </summary>
/// <param name="vendorName">Name of the vendor.</param>
public void TurnOffReceiveLocation(string vendorName)
{
ReceiveLocation location = Locations[vendorName].ReceiveLocation;
location.Enable = false;
BizTalkCatalog.SaveChanges();
}
Sie werden feststellen, dass es einige, die ich ausgelassen, als würde ich ein Wörterbuch der Empfangsspeicherort namens „Orte zu schaffen ", aber Sie sollten in der Lage sein, die Idee zu bekommen. Das Muster trifft ziemlich genau auf jedes BizTalk-Objekt zu, mit dem Sie interagieren möchten.
Schön zu sehen, dass Sie eine Lösung gefunden haben.
Wollte eine ähnliche Alternative erwähnen, die auch Powershell, ExplorerOM und die BizTalk-API verwendet, um BizTalk-Artefakte zu verschiedenen Status festzulegen.
Empfangsbereiche sind einer davon.
Das Skript akzeptiert XML-Konfigurationsdateien, in denen Sie die Artefakte auflisten und auf welchen Status Sie sie setzen möchten.
Das Skript zu Microsoft Script Center veröffentlicht wurde: http://gallery.technet.microsoft.com/scriptcenter/Set-Artifact-Status-270f43a0
- 1. Gibt es eine Möglichkeit, Code zum Testen in den Live-Code ein- und auszuschalten?
- 2. Gibt es eine Möglichkeit, jquery noconflict Modus in Wordpress auszuschalten?
- 3. Gibt es eine Möglichkeit, reloadOnSearch in einem Controller bedingt auszuschalten?
- 4. Gibt es eine Möglichkeit, Bluetooth und/oder Wifi programmgesteuert in iOS ein- und auszuschalten?
- 5. Gibt es eine Möglichkeit, JLabel durch Integer
- 6. Gibt es eine Möglichkeit, Wifi in iOS programmatisch ein- und auszuschalten?
- 7. Gibt es eine Möglichkeit, "durch eine Liste zu führen"?
- 8. Gibt es eine Möglichkeit, eine Seite durch JavaScript zu erkennen?
- 9. Gibt es eine Möglichkeit, eine Spalte zu ändern, um 'NOT NULL' auszuschalten?
- 10. Gibt es eine Möglichkeit, herauszufinden, welcher Code eine Assembly verwendet?
- 11. Gibt es eine C++ Funktion, um den Computer auszuschalten?
- 12. Gibt es eine einfache Möglichkeit herauszufinden, durch welchen js-Code ein DOM-Element manipuliert wird?
- 13. Gibt es eine Möglichkeit, eine CABasicAnimation anzuhalten?
- 14. Gibt es eine Möglichkeit, Formularantwort zu ignorieren?
- 15. Android: Gibt es eine Möglichkeit, DialogPreference aus Code anzuzeigen?
- 16. Gibt es eine Möglichkeit, mit OneNote über Code zu kommunizieren?
- 17. Gibt es eine Möglichkeit, absichtlich alle Anti-Aliasing für UIView auszuschalten?
- 18. Gibt es eine Möglichkeit zu testen, ob ein Edelstein funktioniert? Oder eine Möglichkeit zu sehen, welche Funktionen es hat
- 19. Gibt es eine Möglichkeit, eine Menge oder ein Array von Schlüsseln für ein bestimmtes NSManagedObject abzurufen?
- 20. Gibt es eine Möglichkeit, onPanResponderMove zu verwalten?
- 21. Gibt es eine Möglichkeit festzustellen, dass eine .a oder .so Bibliothek als positionsunabhängiger Code kompiliert wurde?
- 22. Gibt es eine einfache Möglichkeit, um mehrere Sprachpakete bei der Verwendung von Nuget auszuschalten?
- 23. Gibt es eine Möglichkeit, dass es jemals PHP.NET gibt?
- 24. Gibt es eine Möglichkeit, Berührungen durch das iPhone zu übertragen?
- 25. Gibt es eine Möglichkeit, eine Schleife anzuhalten, bis ein Benutzer nach rechts oder links wischt?
- 26. Gibt es eine Möglichkeit Builder Code wiederverwenden für die Nachrüstung
- 27. Gibt es eine bessere Möglichkeit, diesen MATLAB-Code zu implementieren?
- 28. Gibt es eine Möglichkeit Code zu re-factor swapping Integer
- 29. Gibt es eine bessere Möglichkeit, diesen Python-Code zu machen?
- 30. Gibt es eine gute Möglichkeit, jQuery-Code zu validieren?
Großartig, das ist definitiv gültig. Je mehr Optionen, desto besser. Danke Tomasr. –