[英]ASP.NET Core 5, HttpPut request with parameters from body always returns Http 400 Bad request
[英]Calling web api core asp.net from remote computer always gets 400 bad request
抱歉,以前可能会问过这个问题。 我们已经从StackOverflow尝试了这个链接, 当通过局域网访问localhost Web API或Web App时 , 错误的请求-无效的主机名对我们都没有作用。
我们在一台笔记本电脑中使用以下IP地址配置了.net core 2.0 Web API:
并在Windows 10和Visual Studio 2017上运行
我们还为项目修改了applicationsHost配置文件,并在绑定上添加了具有正确端口的机器IP地址。
我们也运行以下命令netsh https add urlacl url = http://192.168.43.192:51785/ user =每个人netsh advfirewall防火墙添加规则名称=“ IISExpressWeb” dir = in protocol = tcp localport = 51785 profile = private remoteip = localsubnet动作=允许
问题是,当我们从网络上的其他机器(不同的IP地址,可以是Mac或移动设备通过端口44350,ssl或端口51785)访问Web api时,它总是返回错误
我目前正在道路上使用手机(上图为路由器,因此android上没有wifi连接图标)。 它在连接到android手机的wifi的mac上也能正常工作。 另外,如果我在家中使用固定路由器,也会得到相同的结果。
我们甚至尝试从此处https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185下载Conveyor.ConveyorbyKeyoti
由于IIS Express愚蠢地接受远程连接,因此请单独运行Kestrel并在Program.cs文件中设置UseUrls
WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .UseUrls("http://*:[your port]")
如果要使用IIS Express:
您需要转发端口,看来这件事检查连接是否发送了与它绑定的主机标头匹配的主机标头,如果未绑定则为127.0.0.1。
.vs\\config\\applicationhost.config
<binding protocol="http" bindingInformation="*:[port]:localhost">
更改为: <binding protocol="http" bindingInformation="*:[port]:" />
通过cmd创建端口转发:
netsh interface portproxy add v4tov4 listenport=[new-port] listenaddress=* connectport=[the-port-iis-using] connectaddress=127.0.0.1
[new-port]
添加防火墙入站规则 您是否尝试过该帖子中提到的扩展“传送带”? 您可以从扩展对话框或https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185获取Conveyor。ConveyorbyKeyoti可以修复IIS Express中的400 Bad Request错误,而无需进行任何配置更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.