【发布时间】:2021-11-16 21:17:43
【问题描述】:
我正在尝试让一个简单的 HTTP 控制台应用程序作为 Azure 服务应用程序运行。它所做的只是在您连接时返回 OK。它在我的笔记本电脑上运行良好,我可以使用 VS2019 发布到 Azure ok。问题在于用于监听的前缀。
在我的笔记本电脑上我可以使用 http://+:80/;https://+:443/,但在 Azure 中我收到错误:[EXCEPTION] Access is denied.
这篇文章https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#network-endpoint-listening 暗示应用程序将监听 80 和 443 “通过 Internet 访问应用程序的唯一方法是通过已经公开的 HTTP (80) 和 HTTPS (443) TCP 端口;应用程序可能不会在其他端口上侦听来自 Internet 的数据包。 但是,应用程序可能会创建一个套接字,该套接字可以侦听沙箱内的连接。例如,同一应用程序中的两个进程可能通过 TCP 套接字相互通信;从沙盒外部传入的连接尝试,即使它们在同一台机器上,也会失败。有关更多详细信息,请参阅下一个主题。”
但是当我尝试注册前缀时,我的代码总是失败。我不能使用 localhost,因为同一篇文章说这是不允许的。我已经尝试使用应用程序 URL,但这也不起作用。
我看过其他文章暗示 HTTPListener 需要管理员权限,而我无法在 Azure 中授予它。
有谁知道正确的前缀是什么或者它是否会起作用?
【问题讨论】:
-
我的猜测是它与已经在监听这些端口的 Azure Web App 应用程序服务器(大部分时间是 IIS)冲突
-
可能,但文章确实暗示应用程序也可以侦听这些端口。
标签: azure .net-core system.net.httpwebrequest