第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 WCF 自動發(fā)現(xiàn)中獲取 IP 地址

如何在 WCF 自動發(fā)現(xiàn)中獲取 IP 地址

C#
互換的青春 2023-09-16 17:50:21
我添加了以下功能來自動發(fā)現(xiàn)內(nèi)網(wǎng)中的WCF服務(wù)。private void AutoDiscovery(FindCriteria cirteria){    try    {        UdpDiscoveryEndpoint udp = new UdpDiscoveryEndpoint();        using (DiscoveryClient discoveryClient = new DiscoveryClient(udp))        {            cirteria.Duration = TimeSpan.FromSeconds(5);            FindResponse response = discoveryClient.Find(cirteria);            if (response.Endpoints.Count > 0)            {                foreach (EndpointDiscoveryMetadata point in response.Endpoints)                {                    string address = point.Address.Uri.ToString();                    // net.tcp//computer1:8081/wcfService                }            }        }    }    catch(Exception e)    {    }}測試時,返回地址為net.tcp//computer1:8081/wcfService。雖然我可以使用它Dns.GetHostAddress來獲取IP地址,但由于DNS問題,在本地內(nèi)網(wǎng)中需要很長時間。有沒有辦法在發(fā)現(xiàn)過程中直接獲取IP地址?
查看完整描述

1 回答

?
富國滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個贊

我認(rèn)為你的想法是最好的解決方案,通過使用 DNS.GetHostAddress 來獲取服務(wù)器的實(shí)際 IP 地址。它只能由域名系統(tǒng)來完成。DiscoveryClient 僅返回服務(wù)器端定義的服務(wù)端點(diǎn)地址,該地址僅適用于控制臺應(yīng)用程序托管的服務(wù)。


<service name="ConsoleApp3.TestService">

        <!--the below service endpoint address is returned as defined here-->

        <endpoint address="http://10.157.13.69:6666" binding="wsHttpBinding" contract="ConsoleApp3.ITestService" ></endpoint>

        <!--this line code will return domain-->

        <!--<endpoint address="http://vabqia969vm:6666" binding="wsHttpBinding" contract="ConsoleApp3.ITestService"></endpoint>-->

        <!--for exposing the service-->

        <endpoint kind="discoveryEndpoint" address="http://10.157.13.69:6666/exterior" binding="wsHttpBinding" ></endpoint>

      </service>

對于 IIS 中托管的服務(wù),無論站點(diǎn)綁定的類型如何,都僅返回域名。這種情況下,我們就只能利用DNS了。


foreach (EndpointDiscoveryMetadata item in response.Endpoints)

            {

                //retrieve IP address

                System.Net.IPHostEntry hostinfo = System.Net.Dns.GetHostEntry(item.Address.Uri.Host);

                string IPAddress = hostinfo.AddressList[2].ToString();

                Console.WriteLine(IPAddress);

            }

如果有什么需要我?guī)兔Φ?,請隨時告訴我。


查看完整回答
反對 回復(fù) 2023-09-16
  • 1 回答
  • 0 關(guān)注
  • 141 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號