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.
Wenn Sie Azure-Funktionen mit .NET erstellen und Dev Proxy verwenden möchten, befolgen Sie die allgemeinen Anleitungen für die Verwendung von Dev Proxy mit .NET-Anwendungen.
Von Bedeutung
Um zu verhindern, dass Azure Functions beim Start fehlschlägt, starten Sie Dev Proxy, ohne ihn als Systemproxy zu registrieren, entweder mithilfe der --as-system-proxy false Option oder durch Konfigurieren asSystemProxyfalse in der devproxyrc.json Datei. Wenn Sie Dev Proxy als Systemproxy registrieren, schlägt Azure Functions beim Start mit einer Fehlermeldung wie folgende fehl:
Grpc.Core.RpcException: 'Status(StatusCode="Internal", Detail="Error starting gRPC call. HttpRequestException: Requesting HTTP version 2.0 with version policy RequestVersionOrHigher while unable to establish HTTP/2 connection.", DebugException="System.Net.Http.HttpRequestException: Requesting HTTP version 2.0 with version policy RequestVersionOrHigher while unable to establish HTTP/2 connection.")'
Um zwischen der Verwendung von Dev Proxy in der Entwicklung und nicht in der Produktion zu wechseln, können Sie den Proxy in Ihrer Azure Functions-App am besten mithilfe von Umgebungsvariablen konfigurieren. Ändern Sie die local.settings.json Datei so, dass sie die Umgebungsvariable HTTPS_PROXY enthält.
{
"IsEncrypted": false,
"Values": {
"HTTPS_PROXY": "http://127.0.0.1:8000"
}
}
HttpClient in .NET nimmt die HTTPS_PROXY Umgebungsvariable automatisch auf und verwendet sie zum Konfigurieren des Proxys für ausgehende HTTP-Anforderungen.
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace dotnet_azure_fn;
public class MyFn(ILogger<MyFn> logger, IHttpClientFactory httpClientFactory)
{
private readonly ILogger<MyFn> _logger = logger;
private readonly HttpClient _httpClient = httpClientFactory.CreateClient();
[Function("MyFn")]
public async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req)
{
_logger.LogInformation("C# HTTP trigger function processed a request.");
var result = await _httpClient.GetAsync("https://jsonplaceholder.typicode.com/posts");
if (result.IsSuccessStatusCode)
{
return new OkObjectResult(await result.Content.ReadAsStringAsync());
}
else
{
_logger.LogError("HTTP request failed.");
return new StatusCodeResult(StatusCodes.Status500InternalServerError);
}
}
}