C# 如何从另一个系统调用函数App API?

C# 如何从另一个系统调用函数App API?,c#,api,azure,azure-functions,azure-functions-runtime,C#,Api,Azure,Azure Functions,Azure Functions Runtime,我使用Visual Studio 2017创建了一个函数应用程序,并创建了一些API。那个API在我的系统上运行得非常好。但从另一个系统中,它得到了“坏请求/无法访问站点” 我的问题是,如何从另一个系统调用API?任何人请给我解决方案。如果您创建了v2函数,请在本地调试时检查函数CLI输出。在第三行,应该有正在收听:http://0.0.0.0:7071 如果您看到正在收听:http://localhost:7071,这意味着您的函数CLI很旧,因此它仍然绑定到本地主机,从而阻止您使用本地IP

我使用Visual Studio 2017创建了一个函数应用程序,并创建了一些API。那个API在我的系统上运行得非常好。但从另一个系统中,它得到了“坏请求/无法访问站点”


我的问题是,如何从另一个系统调用API?任何人请给我解决方案。

如果您创建了v2函数,请在本地调试时检查函数CLI输出。在第三行,应该有
正在收听:http://0.0.0.0:7071

如果您看到
正在收听:http://localhost:7071
,这意味着您的函数CLI很旧,因此它仍然绑定到本地主机,从而阻止您使用本地IP访问函数

显然,解决方案是使用最新的CLI。在VS菜单、工具->扩展和更新中,查找Azure函数和Web作业工具,将其更新至最新版本(15.0.40617.0)。然后,新CLI应该可以正常工作


请注意,本地功能只能由同一LAN中的系统访问,否则您应该公开该功能,请参阅。如果您使用v1函数,它的最新CLI仍然绑定到localhost,如果需要,必须求助于ngrok之类的工具

在VS调试站点,默认情况下使用IIS Express和localhost+端口

为了使用IP地址和多域调试,我们可以在
C:\Users\…\Documents\IISExpress\config\applicationhost.config
下找到
applicationhost.config
,并找到以下代码:

标记中添加类似的行:

 <binding protocol="http" bindingInformation="*:7071:192.168.1.17" />
最后,您可以使用IP地址访问此站点


更多信息供您参考:

192.168.1.17
是您电脑的IP地址(本地)?你是在本地运行的吗?是的,这是我的系统IP,但它在我的系统中也不工作。我在IP地址上使用“localhost”。这就是我的问题,我无法使用IP访问我的API。请参见-
func主机
实际上不应该像在生产中那样使用,应该用像nginx这样的重型反向代理来包装。Kestrel有什么问题,它需要nginx在上面?你可以问。公平的问题。裸体红隼可能没什么问题,我打开了一个问题,想从构建运行时的人那里得到一个答案-你是否在你的服务中绑定了127.0.0.1 ip,以便你的azure功能不能被本地主机以外的其他ip访问。是的,我收到一条消息“已成功注册”,但仍然无法使用ip地址访问API。。。我能重启我的系统吗?@IsmayilS是的,试着重启你的系统
netsh http add urlacl url=http://192.168.1.17:7071/ user=everyone