我有一个用 C# 编写的 Microsoft Azure Function App 2.0 预览版,它绑定到http://本地主机:7071 http://localhost:7071.
如何将其绑定到 0.0.0.0 而不是 localhost,以便我可以从本地网络上的另一台计算机访问它?
看着这些微软文档 https://learn.microsoft.com/en-us/azure/azure-functions/functions-run-local我可以看到如何在中指定端口local.settings.json
file
"Host": {
"LocalHttpPort": 7071,
"CORS": "*"
}
但不知道要使用哪个网络接口。
来自 Rails 背景的我会这样做:rails s -b 0.0.0.0
如何在 .net/Azure Function 世界中执行此操作?
UPDATE —
你不再需要这个魔法了,因为函数主机现在正在监听0.0.0.0:7071
默认情况下:
$ func -v
2.0.1-beta.33
$ func | grep Runtime
Function Runtime Version: 2.0.11933.0
$ func host start | grep -i listen
Listening on: http://0.0.0.0:7071
现已弃用 —
如果您使用的是 Windows,
C:\>netsh interface portproxy add v4tov4 listenport=8081 ^
listenaddress=0.0.0.0 connectport=7071 connectaddress=127.0.0.1
C:\>netsh interface portproxy show all
Listen on ipv4: Connect to ipv4:
Address Port Address Port
--------------- ---------- --------------- ----------
0.0.0.0 8081 127.0.0.1 7071
C:\>netstat -an | findstr 8081
TCP 0.0.0.0:8081 0.0.0.0:0 LISTENING
C:\>netstat -an | findstr 7071
TCP 127.0.0.1:7071 0.0.0.0:0 LISTENING
测试一下:
C:\>curl.exe http://192.168.111.4:8081/api/HttpTrigger -i
HTTP/1.1 200 OK
Date: Wed, 28 Mar 2018 18:25:31 GMT
Content-Type: application/json; charset=utf-8
Server: Kestrel
Transfer-Encoding: chunked
"Oh hai."
要摆脱 portproxy:
C:\>netsh interface portproxy delete v4tov4 listenport=8081 listenaddress=0.0.0.0
在 Linux 上,iptables 是你的出路,在 Mac 上……我不知道,nginx 是你的出路吗?好吧,好像有一个pfctl https://apple.stackexchange.com/a/248064工具,可能是从 BSD 继承的?
虽然Kestrel是服务器,设置环境变量ASPNETCORE_URLS="http://*:7071"
没有影响。函数主机可能是通过以下方式引导的localhost
在代码中,这可能暗示您不应该裸露它,您应该反向代理它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)