Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
.NET Aspire ist ein vordefinierter, cloudfähiger Stack zum Erstellen von beobachtbaren, produktionsreifen, verteilten Anwendungen. Es basiert auf .NET und bietet eine moderne, schnelle und skalierbare Plattform zum Erstellen von Webanwendungen.
Um Dev Proxy mit Ihrer .NET Aspire-Anwendung zu verwenden, verwenden Sie das DevProxy.Hosting NuGet-Paket. Das Paket bietet Dev Proxy .NET Aspire-Erweiterungen, um Dev Proxy bequem in Ihre .NET Aspire-Anwendung zu integrieren.
Installieren des Dev Proxy .NET Aspire Extensions NuGet-Pakets
Um das Dev Proxy .NET Aspire Extensions NuGet-Paket zu installieren, führen Sie den folgenden Befehl im Stammordner Ihrer .NET Aspire-Anwendung aus:
dotnet add package DevProxy.Hosting
Mit dem Dev Proxy .NET Aspire-Erweiterungspaket können Sie Dev Proxy entweder aus der lokal installierten ausführbaren Datei oder aus einem Docker-Container integrieren.
Dev Proxy vom lokal installierten ausführbaren Programm integrieren
Wenn Sie Dev Proxy lokal installiert haben, besteht die bequemste Möglichkeit, ihn in Ihre .NET Aspire-Anwendung zu integrieren, darin, auf die lokale ausführbare Datei zu verweisen. Der folgende Codeausschnitt zeigt, wie Dev Proxy aus der lokal installierten ausführbaren Datei in die .NET Aspire Starter-Anwendung integriert wird.
Von Bedeutung
Wenn Sie Dev Proxy für die Verwendung der lokalen ausführbaren Datei konfigurieren, stellen Sie sicher, dass die ausführbare Datei auf allen Computern verfügbar ist, auf denen Sie Ihre Anwendung ausführen. Wenn Sie Dev Proxy in einer containerisierten Umgebung verwenden möchten, sollten Sie stattdessen den Docker-Container verwenden.
using DevProxy.Hosting;
var builder = DistributedApplication
.CreateBuilder(args);
// Add an API service to the application
var apiService = builder.AddProject<Projects.AspireStarterApp_ApiService>("apiservice")
.WithHttpsHealthCheck("/health");
var devProxy = builder.AddDevProxyExecutable("devproxy")
.WithConfigFile(".devproxy/config/devproxy.json")
.WithUrlsToWatch(() => [$"{apiService.GetEndpoint("https").Url}/*"]);
// Add a web frontend project and configure it to use Dev Proxy
builder.AddProject<Projects.AspireStarterApp_Web>("webfrontend")
.WithExternalHttpEndpoints()
.WithHttpsHealthCheck("/health")
.WithEnvironment("HTTPS_PROXY", devProxy.GetEndpoint(DevProxyResource.ProxyEndpointName))
.WithReference(apiService)
.WaitFor(apiService)
.WaitFor(devProxy);
// Build and run the application
builder.Build().Run();
Zuerst fügen Sie mithilfe der Dev Proxy .NET Aspire-Erweiterungen einen Dev Proxy-Dienst zu Ihrer Anwendung hinzu. Die AddDevProxyExecutable Methode gibt den Namen der ausführbaren Dev Proxy-Datei an. Mit der WithConfigFile Methode geben Sie den Pfad zur Dev Proxy-Konfigurationsdatei an. Mit der WithUrlsToWatch Methode geben Sie die Liste der zu überwachenden URLs an. In diesem Beispiel soll Dev Proxy Anforderungen abfangen, die von der Web-App an den API-Dienst gesendet werden.
Von Bedeutung
Beachten Sie, dass die WithUrlsToWatch Methode eine Funktion akzeptiert, die eine Liste von URLs zurückgibt, die überwacht werden sollen. Dies liegt daran, dass der API-Dienstendpunkt nicht verfügbar ist, wenn Sie Dev Proxy konfigurieren, sodass Sie die URL nicht direkt übergeben können. Stattdessen verwenden Sie einen Lambda-Ausdruck, der die URL des API-Diensts zurückgibt, wenn er verfügbar ist.
Als Nächstes verwenden Sie in der Web-App die HTTPS_PROXY Umgebungsvariable, um die Web-App für die Verwendung von Dev Proxy zu konfigurieren. Mit der WaitFor Methode weisen Sie die Web-App an, vor dem Start auf die Verfügbarkeit des Dev-Proxys zu warten.
Integrieren von Dev Proxy aus einem Docker-Container
Alternativ können Sie Dev Proxy aus einem Docker-Container in Ihre .NET Aspire-Anwendung integrieren. Die Verwendung des Dev Proxy Docker-Images ist praktisch, da .NET Aspire das Image automatisch abruft, wenn es nicht lokal verfügbar ist. Der Nachteil ist, dass es einige weitere Schritte zum Konfigurieren von Dev Proxy in Ihrer Anwendung gibt.
Der folgende Codeausschnitt zeigt, wie Dev Proxy aus einem Docker-Container in die .NET Aspire Starter-Anwendung integriert wird.
using DevProxy.Hosting;
var builder = DistributedApplication
.CreateBuilder(args);
// Add an API service to the application
var apiService = builder.AddProject<Projects.AspireStarterApp_ApiService>("apiservice")
.WithHttpsHealthCheck("/health");
// Add Dev Proxy as a container resource
var devProxy = builder.AddDevProxyContainer("devproxy")
// specify the Dev Proxy configuration file; relative to the config folder
.WithConfigFile("./devproxy.json")
// mount the local folder with PFX certificate for intercepting HTTPS traffic
.WithCertFolder(".devproxy/cert")
// mount the local folder with Dev Proxy configuration
.WithConfigFolder(".devproxy/config")
// let Dev Proxy intercept requests to the API service
.WithUrlsToWatch(() => [$"{apiService.GetEndpoint("https").Url}/*"]);
// Add a web frontend project and configure it to use Dev Proxy
builder.AddProject<Projects.AspireStarterApp_Web>("webfrontend")
.WithExternalHttpEndpoints()
.WithHttpsHealthCheck("/health")
// set the HTTPS_PROXY environment variable to the Dev Proxy endpoint
.WithEnvironment("HTTPS_PROXY", devProxy.GetEndpoint(DevProxyResource.ProxyEndpointName))
.WithReference(apiService)
.WaitFor(apiService)
.WaitFor(devProxy);
// Build and run the application
builder.Build().Run();
Die grundlegenden Schritte sind identisch mit der Verwendung der lokal installierten ausführbaren Datei. Der Hauptunterschied besteht darin, wie Sie die Konfigurationsdatei und das Zertifikat zum Abfangen von HTTPS-Datenverkehr angeben.
Wenn Sie Dev-Proxy aus einem Docker-Container integrieren, müssen Sie die lokalen Ordner mit der Konfigurationsdatei und dem Zertifikat in den Container einbinden. In diesem Beispiel haben Sie in Ihrer .NET Aspire-Lösung die folgende Ordnerstruktur:
AspireStarterApp
├── .devproxy
│ ├── cert
│ │ └── rootCert.pfx
│ └── config
│ └── devproxy.json
├── Projects
│ ├── AspireStarterApp_ApiService
│ └── AspireStarterApp_Web
└── AspireStarterApp.sln
Der cert Ordner enthält das PFX-Zertifikat (Personal Information Exchange), das Dev Proxy zum Abfangen von HTTPS-Datenverkehr verwendet.
Von Bedeutung
Sie müssen dem Zertifikat im cert Ordner auf Ihrem Computer vertrauen, oder Anforderungen an den API-Dienst schlagen fehl. Damit dev Proxy das Zertifikat laden kann, muss es sich auch im PFX-Format befinden, benannt rootCert.pfxsein und darf nicht durch ein Kennwort geschützt werden.
Der config Ordner enthält die Dev Proxy-Konfigurationsdatei und andere Dev Proxy-Dateien wie Modelle oder Fehler.
Da Sie die Zertifikat- und Konfigurationsdateien an separate Volumes im Container bereitstellen, müssen sie in separaten Ordnern gespeichert werden.
Verwenden von Dev Proxy mit der .NET Aspire Starter-Anwendung
Nachdem Sie die Anwendung gestartet haben, wird Dev Proxy als Ressource in der Anwendung angezeigt.
Wenn Sie die Webanwendung verwenden, damit sie Anforderungen an den API-Dienst sendet, fängt Dev Proxy die Anforderungen ab und verarbeitet sie entsprechend Ihrer Konfiguration. Sie können die Dev Proxy-Ausgabe im Konsolenabschnitt des .NET Aspire-Dashboards sehen.