2017-05-04 2 views
1

Ich habe eine Azure-Funktionsanwendung lokal in Visual Studio 2017 (Nicht Azure-Portal) erstellt, indem Sie die Schritte unter der folgenden URL ausführen..NET-Klassenbibliothek als Azure-Funktionsanwendung mit ServiceBusTopic-Trigger funktioniert nicht

https://blogs.msdn.microsoft.com/appserviceteam/2017/03/16/publishing-a-net-class-library-as-a-function-app

Ich folgte den Schritten genau eine Funktion zu erstellen, die eine „ServiceBusTopicTrigger“ hat. Ich habe folgendes meine function.json

{ 
    “disabled”: false, 
    “bindings”: [ 
     { 
      “name”: “mySbMsg”, 
      “type”: “serviceBusTrigger”, 
      “direction”: “in”, 
      “topicName”: “negotiatedaddcharge_test”, 
      “subscriptionName”: “clientdispatches”, 
      “connection”: “servicebusnac”, 
      “accessRights”: “manage” 
     } 
    ] 
} 

Mein appsenttings.json hat folgende

{ 
    “IsEncrypted”: true, 
    “Values”: { 
     “servicebusnac”: “Endpoint=MyCompanyEndPointPlaceHolder” 
    } 
} 

Wenn ich die Funktion in Visual Studio ausführen Ich erhalte eine Fehlermeldung „Microsoft.Azure.WebJobs .ServiceBus: Microsoft Azure SDK WebJobs ServiceBus Verbindungszeichenfolge ‚zu‘ fehlt oder ist leer „

nur für das Heck von ihm mir eine weiteren Eintrag in die Wert Sammlung mit dem Namen hinzugefügt‚zu‘, aber immer noch die gleiche mes. Salbei taucht auf. Gibt es etwas, was ich falsch mache?

Wie testen Sie diese Funktion auch? Ich kann auf keine Funktion in der CSX-Datei in meinem Unit-Testprojekt zugreifen.

Danke.

Bearbeitet: Ich habe Informationen hinzugefügt, um klarzustellen, dass ich die Funktion in Visual Studio statt im Azure-Portal erstelle.

+1

Edit: Die Funktion läuft gut im Portal. Das Problem, vor dem ich stehe, ist, wenn ich versuche, es lokal in Visual Studio basierend auf den Informationen im Blogpost zu betreiben. – Sunil

+0

Bitte bearbeiten Sie die aktuelle Frage mit den obigen _critical_ Details, anstatt einen Kommentar anzuhängen.Ich denke, Sie werden feststellen, dass Antworten auf Ihre Frage Ihr spezifisches Problem genauer behandeln werden. –

Antwort

0

Die Lösung ist einfach; Ich bin selbst in diese Sache gerannt und es hat mich für eine Weile völlig ratlos gemacht.

In Ihrem appsettings.json ändern Sie "IsEncrypted" von true zu false. Dies sollte das Problem beheben, das Sie sehen.

Die Fehlermeldungen sind für dieses Szenario weniger als ideal; Das Azure Functions Team hat bereits einen Bugfix dafür.

Hoffe das hilft jedem, der in dieses Problem hineinläuft. (Ich schwöre, es war eine Woche, bevor ich das herausgefunden habe, und nicht ohne Hilfe.)

+0

Das war es. Vielen Dank. – Sunil

3

Die Funktion App sucht in Umgebungsvariablen nach Ihren Service Bus-Verbindungszeichenfolgen. Sie können diese vom Azure-Portal aus einstellen:

  1. Gehen Sie zu Ihrer Funktion App.
  2. Wählen Sie Platform features Registerkarte über dem Editor.
  3. Klicken Sie auf Application settings.
  4. Unter App settings Abschnitt einen Eintrag mit Verbindungsname und Zeichenfolge hinzufügen. nur die lokale Entwicklung zu unterstützen und Einstellungen definiert sind nicht veröffentlicht Azure

Die appsettings.json Datei verwendet wird.

+1

Entschuldigung, ich denke, ich sollte genauer sein. Ich habe kein Problem, die Azure-Funktion auf dem Portal auszuführen. Ich versuche, es lokal auf meinem Computer mit Visual Studio basierend auf den Informationen im Blogpost (ich habe den Link in meiner Frage bereitgestellt) ausführen. Hier tritt der Fehler auf. Die Funktion kann die Servicebus-Verbindungszeichenfolge nicht finden, obwohl ich sie in meiner appsettings.json-Datei definiert habe. – Sunil

+0

@Sunil Bitte aktualisieren Sie Ihre Frage, um Ihr Problem zu klären; Es ist nicht klar, wenn Sie die Frage lesen, auf die Sie sich speziell beziehen, wenn Sie die Funktion lokal ausführen. –

Verwandte Themen