簡體   English   中英

通過混合連接從客戶端連接到Azure Web作業

[英]Connect To Azure Web Job from Client over Hybrid Connection

我有一個內部服務器(mockhospital1),並且在應用程序服務計划中有一個Azure Web應用程序。

我已經從此Azure Web應用程序創建了一個混合連接以鏈接服務器A,並且我在服務器A上下載了HCM並在其中添加了連接(所有連接均正常工作)。

我能夠在ockhospital1上打開偵聽器套接字(使用ac#控制台應用程序):

        Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        listener.Bind(new IPEndPoint(IPAddress.Any, 2113));
        listener.Listen(100);

然后,我在Azure Web App中創建了一個Web作業,該作業通過HC發送到此套接字:

        IPHostEntry ipHost = Dns.Resolve("mockhospital1");
        IPAddress ipAddress = ipHost.AddressList[0];
        IPEndPoint ipEndpoint = new IPEndPoint(ipAddress, 2113);
        Socket sender = new Socket(System.Net.Sockets.AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        sender.Connect(ipEndpoint);

這很好。

現在,我嘗試以相反的方式進行連接(啟動從嘲笑者1發送到Azure的發送)。

我要實現的目標是通過端口2113上的同一HC將數據從mockhospital1直接發送到我在Azure WebJob中創建的偵聽器。 我正在努力尋找一種方法來做到這一點。 我不確定如何設置發送套接字。

這是我在Azure WebJob上擁有的(只需在正確的端口上設置偵聽器-2113):

        Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        listener.Bind(new IPEndPoint(IPAddress.Any, 2113));
        listener.Listen(100);

我不確定如何連接到此以從模仿hospital1發送。 我嘗試了以下代碼(我想我真的需要知道IP_HOST_NAME應該是什么):

        byte[] receivedBytes = new byte[1024];
        IPHostEntry ipHost = Dns.Resolve(IP_HOST_NAME);
        IPAddress ipAddress = ipHost.AddressList[0];
        IPEndPoint ipEndpoint = new IPEndPoint(ipAddress, 2113);
        Socket sender = new Socket(System.Net.Sockets.AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        sender.Connect(ipEndpoint);

我想知道是否有人知道我如何實現自己的目標,或者我是否以錯誤的方式解決了這個問題。

從Azure Web App進行網絡訪問方面存在多種限制。

可以通過Internet訪問應用程序的唯一方法是通過已公開的HTTP(80)和HTTPs(443)TCP端口 ,應用程序可能無法在其他端口上偵聽來自Internet的數據包。

但是,應用程序可以創建一個套接字,該套接字可以偵聽來自沙箱中的連接。 例如,同一應用程序中的兩個進程可以通過TCP套接字相互通信; 從沙箱外部傳入的連接嘗試(即使它們位於同一台計算機上)將失敗。

有關更多詳細信息,請參閱本文

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM