2017-05-29 7 views
2

Ich bin neu in der Welt von Powershell und Azure (C/C++ - Hintergrund) und möchte ein PowerShell-Skript schreiben, das einen Azure Event Hub überwacht. Ein Weg (und bisher der einzige Weg, den ich gefunden habe), dies zu lösen, ist die Verwendung der .NET Klassen von Microsoft.​Azure.​Event​Hubs.​Processor. Ich nehme an, der Code eine Instanz der Klasse EventProcessorHost schaffen würde wie folgt aussehen:Zugriff auf .NET-Klassen in Powershell?

$eventPHost = [Microsoft.Azure.EventHubs.Processor]::EventProcessorHost($AZR_EVENT_HUB_PATH, $AZR_CONSUMER_GRP_NAME, $AZR_EVENT_HUB_CONNECTION_STR, $AZR_STORAGE_CONNECTION_STR, $AZR_LEASE_CONTAINER_NAME); 

jedoch der Namespace Microsoft.Azure.EventHubs.Processor zu Powershell unbekannt ist und es scheint, dass ich etwas falsch oder fehlt etwas tue. An diesem Punkt bin ich nicht sicher, ob mein Code ungültig ist oder mir etwas .NET SDK oder etwas fehlt. Ich konnte auch keine ähnlichen Beispiele finden.

Könnte mich bitte jemand in die richtige Richtung führen? Ich bin irgendwie fest, keine Ahnung, in welche Richtung ich gehen soll.

+0

Können Sie diese DLL in das Verzeichnis kopieren, in dem Sie das PS-Skript ausführen? –

+0

Azure verfügt über eine eigene Auswahl an Powershell-Modulen. Haben Sie [die Dokumentation lesen] (https://docs.microsoft.com/en-us/powershell/azure/overview?view=azurermps-4.0.0) schon? – vonPryz

+0

@vonPryz Danke, aber diese unterstützen nur das Resource Management für Event Hubs, so dass sie nicht überwacht werden können. – dcfyg

Antwort

1

Zunächst müssen Sie DLL in Powershell-Sitzung zum Download:

[System.Reflection.Assembly]::LoadFile("c:\script\name.dll") 
+0

'Add-Type -AssemblyName' ist die bevorzugte Methode zum Laden von .Net-Assemblys. – vonPryz

+0

Ich bekomme die folgende Konsolenausgabe: 'GAC Versionsstandort --- ------- -------- Falsch v4.0.30319 C: \ Benutzer \ abc \ .nuget \ packages \ Microsoft.Azure .EventHubs.Processor \ 1.0.1 \ lib \ net451 \ Microsoft.Azure.EventHubs.Process ... ' Wenn ich jedoch versuche, auf [Microsoft.Azure.EventHubs.Processor] zuzugreifen, heißt es:" Typ konnte nicht gefunden werden [Microsoft.Azure.EventHubs.Processor]. " – dcfyg

1

Sie können die Assembly laden mit Add-Type: Für z.B.

+0

'Add-Type -Path" "' Funktioniert nicht für mich: 'Add-Type: Kann einen oder mehrere der angeforderten Typen nicht laden. Rufen Sie die LoaderExceptions-Eigenschaft für weitere Informationen ab. Ich verwende PS-Version 5.1.14393.1198 – dcfyg

Verwandte Themen