iis - 在 .Net Core 2.1 及更高版本中获取 HttpStatusCode 504 ( DNS Name Not Found )
问题描述
我是用 创建简单的项目.netCore 2.0
并用 发送HttpRequest
的HttpClient
,效果很好。
但是,当我从.netCore 2.0
更高版本(例如:.NetCore 2.1
或.netCore 3.0
)迁移时,此代码不起作用。
我的代码是:
public async Task<bool> IsValid()
{
string url = "http://api.domain.com/...";
var values = new Dictionary<string, string>()
{
{ "param1", "value1" },
{ "param2", "value2" }
};
HttpClient client = new HttpClient();
var content = new FormUrlEncodedContent(values);
var post = await client.PostAsync(url, content);
if (post.StatusCode == System.Net.HttpStatusCode.OK)
{
return true;
}
return false;
}
我希望httpResponse
bo的输出HttpStatusCode.OK
。但实际输出是HttpStatusCode.GatewayTimeout
.
我发现:如果我在of 中运行API server
( http://api.domain.com/
) ,所有请求都运行良好。但是当我使用时,只有with有效,其他无效。IIS
windows server 2012
IIS
Windows 8
HttpRequest
ASP.NET Core sdk 2.0
谁能帮我?
解决方案
这个问题终于解决了。
此问题与 中的network and proxy
设置有关my network
。
我意识到当api server
在时internet network
,它运作良好。但是当api server
在本地网络中使用时,由于proxy
在我的网络中使用,所有请求都遇到错误504
(除非请求使用 发送.netCore sdk 2.0
)。
应该注意的是,我已将此行添加192.168.11.125 api.domain.com
到host
Directory 中的文件中c:\windows\system32\drivers\etc\hosts
。而且,我添加了跟随例外:
192.168.11.125 api.domain.com
来自路径:
Control Panel > Network and Internet > Internet Option > Connections Tab > Lan Settings > Advanced > Exceptions panel
但这行不通。
当我拿起表格检查时Use a proxy server for your lan ...
,Local Area Network (LAN) Settings
所有请求都运行良好。
当然,这个问题仍然存在,为什么The same request
要使用 .netcore sdk 2.0 ?
.netCore sdk 2.0
用and ( .netCore sdk 2.1
or .netCore sdk 2.2
or )发送请求有什么区别.netCore sdk 3.0
???!!!
祝你好运。
推荐阅读
- java - 为什么用标志告诉 JAVA NUMA?
- typescript - .on('mouseover', d => ..) 不提供与 .attr('foo', d => ..) 相同的 `d`
- json - 如何根据用户输入expo react-native在屏幕上显示json数据
- android - 对于具有动态功能模块的 Android 多模块项目,Lint 任务永远不会完成
- python - 如何将 json.loads 解析为字符串转换为字典 python
- css - 我的 CSS 文件对我的 Django 项目没有响应。我该如何让它工作?
- javascript - 如何在 JavaScript 中减去具有不同时间格式的日期?
- php - 无论如何都无法使用 PHP 图形 API 创建 FB 广告 (cURL)
- swift - 导航控制器未应用更改
- swiftui - SwiftUI:如何根据其 html 内容设置 WKWebView() 的动态大小?