So führen Sie die Azure Function-App auf einem anderen Port in Visual Studio aus

10

Ich setze den lokalen Host-Port in local.setting.json. Verweis auf Microsoft-Dokument Ссылка

Die Datei sieht wie folgt aus

%Vor%

Wenn ich die Lösung starte / debugge, hostet VS die App immer noch auf dem Standardport (7071)

Ich habe das bin-Verzeichnis überprüft, die local.setting.json -Datei wird dort mit den obigen Einstellungen angezeigt. Führen Sie Azure Fuction CLI ( func host start ) aus dem bin-Verzeichnis korrekt aus und lesen Sie die Portnummer.

Sieht so aus, als ob VS den Port " "LocalHttpPort " nicht verwendet. Sind weitere Änderungen in den Einstellungen erforderlich? Ich habe Visual Studio 2017 Preview (2)

    
Ramkumar Singh 07.07.2017, 17:50
quelle

2 Antworten

25

Die Befehlszeile hat Vorrang vor der Einstellungsdatei. Das Problem besteht darin, dass VS einen expliziten Port in der Befehlszeile übergibt.

funktioniert um project -> properties -> Debug zu gehen, dann unter Application arguments die Kontrolle über die Argumente zu übernehmen. Sie können host start --pause-on-error

eingeben

Bearbeiten von ravinsp:

Update für das .Net Core 2.0-Funktionsprojekt:

Die Befehlszeilenargumente, die Sie übergeben müssen, sind unterschiedlich. Du musst den Weg zu einer dll vor dir gehen. So was: %AppData%\..\Local\Azure.Functions.V2.Cli.0.1-beta.22\Azure.Functions.Cli.dll host start --pause-on-error Sie können sich selbst davon überzeugen, dass Sie die Funktion in Visual Studio ausführen und den Prozess-Explorer verwenden, um Befehlszeilenargumente für den Prozess dotnet.exe anzuzeigen.

edit: ein Wort

    
ahmelsayed 07.07.2017, 18:19
quelle
2
  

Richtige Antwort für .NET Core 2.0 / .NET Standard 2.0 Azure-Funktionen-Projekt in Visual Studio 2017, wenn Sie Azure Functions Core Tools 2.x-Laufzeit über NPM installiert haben

Ich folgte der Antwort von @ ahmelsayed und insbesondere den @ ravinsp-Kommentaren für Kommentare zu .net core 2.0. Obwohl sie sehr hilfreich waren und mich auf den richtigen Weg brachten, funktionierten sie für mich nicht ohne eine entscheidende und nicht-intuitive Änderung, daher füge ich eine neue Antwort hinzu.

TL; DR;

Wenn Sie NPM zum Installieren von Azure Functions Core Tools 2.x Runtime verwendet haben, müssen Sie möglicherweise unter Projekt / Eigenschaften / Debug / Anwendungsargumente Folgendes festlegen:

%Vor%

Lange Antwort folgt ...

Mein Setup

Während dieser Übung ist mein Setup vollständig (zum Zeitpunkt des Schreibens) und wie folgt:

fwiw, die App-Einstellungen auf der Registerkarte Funktionen für diese App Funktionen auf Azure lautet:

%Vor%

Mein Problem

Wenn ich mein Funktionsprojekt (ohne Anwendungsargumente) ausführe, bekomme ich das in der Konsolenausgabe:

%Vor%

Das an und für sich ist vielleicht kein Problem, aber ich bekomme nervige "funktioniert auf meinem Computer, scheitert bei der Veröffentlichung zu azur" -Typ Probleme, so dass ich sicherstellen möchte, dass lokale Ausführung die gleichen Funktionen Laufzeit verwendet azurblau (dh 2.0.11587.0 was laut den obigen Anweisungen ist / sein sollte, oder?)

Also, basierend auf den Anweisungen von @ ravinsp, führe ich eine Suche auf meinem C-Laufwerk aus, um Azure.Functions.Cli.dll zu finden - es gibt nur eine, und sie befindet sich bei C:\Users\<myuserid>\AppData\Local\Azure.Functions.V2.Cli.0.1-beta\Azure.Functions.Cli.dll , was sehr konsistent mit @ ravinsps Antwort zu sein scheint / p>

Also füge ich folgende Projekt / Eigenschaften / Debug / Anwendungsargumente hinzu:

%Vor%

Dann bekomme ich den Port 8888, aber seltsamerweise wird noch als 2.0.11353 gemeldet.

%Vor%

Lösung

Da func von Git Bash wie oben gezeigt eine Laufzeit von 2.0.11587.0 zeigte, habe ich which func versucht, was /c/Users/<myuserid>/AppData/Roaming/npm/func zurückgegeben hat. Ich habe eine Katze drauf und lange Geschichte kurz, ich konnte sehen, dass es schließlich C:\Users\<myuserid>\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\func.exe ausgeführt, und dass in diesem gleichen Verzeichnis gab es eine func.dll .

Also habe ich folgendes Projekt / Eigenschaften / Debug / Anwendungsargumente versucht:

%Vor%

dann bekomme ich endlich ...

%Vor%

und der Fehler, den ich beim Publishing in Azure bekam, beginnt sich auch lokal zu manifestieren.

Ok, jetzt sind die Laufzeiten alle synchron, Zeit, um meinen eigentlichen Fehler zu beheben:)

    
ubienewbie 17.03.2018 22:38
quelle