带有VNet的Azure函数抛出SocketException:请求的地址在其上下文中无效

时间:2018-12-14 12:34:42

标签: azure httprequest azure-functions vnet

我有一个Azure耐用功能,可以通过VNet发送一些HTTP请求。有时,以下方法将引发SocketException:

public async Task<(HttpStatusCode statusCode, string Content)> PostAsync(string uri ,string json)
    {
        if (string.IsNullOrEmpty(uri))
        {
            throw new ArgumentException("message", nameof(uri));
        }

        var client = new HttpClient
        {
            BaseAddress = new Uri(uri)
        };
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        var content = new StringContent(json, Encoding.UTF8, "application/json");

        HttpResponseMessage  response = await client.PostAsync("", content);
        string responseContent = await response.Content.ReadAsStringAsync();
        return (response.StatusCode, responseContent);
    }
  

请求的地址在其上下文中无效

这是VNet的问题还是应该解决这个问题?

1 个答案:

答案 0 :(得分:0)

此错误在TCP层引发。快速搜索显示,尝试绑定到无效的IP地址(例如0.0.0.0)时,通常会发生这种情况。我将从查看您用来确定它是否与您期望的值相对应的URI值开始。