部署后出现“System.Net.Http.HttpRequestException: No such host isknown”错误

问题描述 投票:0回答:1

我正在为我的家庭自动化编写一个 blazor 服务器端应用程序 (.NET6),并让它在家庭服务器上的 IIS 上运行。

如果我在本地计算机上的 IIS Express 中运行以下代码,一切正常。

string _urlForecast = "https://api.openweathermap.org/data/2.5/forecast?id=...";
Uri myUri = new Uri(_urlForecast, UriKind.Absolute);
HttpResponseMessage response = await HttpClient.GetAsync(myUri);
var data = await response.Content.ReadAsStringAsync()

如果我将其部署到本地家庭服务器并运行它,我会收到以下错误:

System.Net.Http.HttpRequestException:没有已知的此类主机。 (api.openweathermap.org:443)

我的“家庭服务器”也运行 Windows 10,并且与我的开发 PC 位于同一网络中。 它位于相同的 IP 范围内,并且在网络适配器上具有相同的 DNS 设置。 我也尝试过关闭防火墙,结果相同。 我正在使用 DI 注入 httpClient,但也尝试不使用 DI。 我尝试使用 http://api... 和 https://api... 因为我的应用程序也可以通过 https 在内部网络中使用。不幸的是我没有任何 Http 请求的经验。

c# http blazor-server-side
1个回答
0
投票

这是旧帖子,但看看文档

https://openweathermap.org/appid

我们可以看到不支持TLS。 (https://...不起作用)。

当然,您还需要一个密钥作为 URL 的一部分。

如果问题是 TLS,那么您收到的错误是有道理的,因为该端口 (443) 将被关闭并且不接受请求。

标准 http 请求不应出现相同的错误。

© www.soinside.com 2019 - 2024. All rights reserved.