Azure 网站:如何在环回接口上建立套接字连接?
Azure WebSite : how to establish a socket connection on loopback interface?
我正在尝试从 Azure 网站(免费)建立一个简单的套接字连接 (tcp://localhost:9999)。我不知道有关套接字使用的任何限制,所以我尝试了这个:
public class TestSocketController : ApiController
{
public string Get()
{
try
{
using (var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
{
socket.Connect("localhost", 9999);
socket.Close();
return "ok";
}
}
catch (Exception ex)
{
return ex.ToString();
}
}
}
给出以下输出:
System.Net.Sockets.SocketException (0x80004005): An attempt was made to access a
socket in a way forbidden by its access permissions 127.0.0.1:9999
at System.Net.Sockets.Socket.Connect(IPAddress[] addresses, Int32 port)
at System.Net.Sockets.Socket.Connect(String host, Int32 port)
at WebApiContainer.Controllers.TestSocketController.Get()
从网站建立套接字连接有什么特别要做的吗?绑定在 Azure 上工作正常,但连接不起作用。
谢谢
感谢 Benjamin 的评论,我发现了这个 SO answer:Azure 网站似乎无法在标准端口 80/443 以外的其他端口上建立 TCP 连接,即使在环回接口上也是如此。
[编辑:郑重声明,命名管道不适用于网站。]
所以我可能受困于服务总线。
我正在尝试从 Azure 网站(免费)建立一个简单的套接字连接 (tcp://localhost:9999)。我不知道有关套接字使用的任何限制,所以我尝试了这个:
public class TestSocketController : ApiController
{
public string Get()
{
try
{
using (var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
{
socket.Connect("localhost", 9999);
socket.Close();
return "ok";
}
}
catch (Exception ex)
{
return ex.ToString();
}
}
}
给出以下输出:
System.Net.Sockets.SocketException (0x80004005): An attempt was made to access a
socket in a way forbidden by its access permissions 127.0.0.1:9999
at System.Net.Sockets.Socket.Connect(IPAddress[] addresses, Int32 port)
at System.Net.Sockets.Socket.Connect(String host, Int32 port)
at WebApiContainer.Controllers.TestSocketController.Get()
从网站建立套接字连接有什么特别要做的吗?绑定在 Azure 上工作正常,但连接不起作用。
谢谢
感谢 Benjamin 的评论,我发现了这个 SO answer:Azure 网站似乎无法在标准端口 80/443 以外的其他端口上建立 TCP 连接,即使在环回接口上也是如此。
[编辑:郑重声明,命名管道不适用于网站。]
所以我可能受困于服务总线。