使用 UDP 而不是 HTTP 部署 XML Web 服务

本文关键字:部署 XML Web 服务 HTTP UDP 使用 | 更新日期: 2023-09-27 18:36:56

正如我已经想通的那样。我想在 IIS 上创建一个 Web 服务来测试我的 Web 服务。但我的问题是,我必须选择绑定类型。有HTTP,net.tcp....但我不仅与客户端有 HTTP 连接。就我而言,我必须使用他们的IP地址(存储在数据库中)将数据发送到客户端。所以我的问题是我应该如何配置它。服务器端也包含此代码

public void Notify(string ipAddress) //List<string> ipList
    {
        try
        {
            Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            IPAddress ip = IPAddress.Parse(ipAddress);
            IPEndPoint endPoint = new IPEndPoint(ip, 15000);
            string notification = "new_update";
            byte[] sendBuffer = Encoding.ASCII.GetBytes(notification);
            sock.SendTo(sendBuffer, endPoint);
            sock.Close();
        }
        catch
        {
        }
    }

我还想知道有关配置 IIS 以部署具有更多详细信息的 Web 服务的任何资源。谢谢!!

使用 UDP 而不是 HTTP 部署 XML Web 服务

部署 Web 服务与在 IIS7 管理器中部署网站相同。这段代码在IIS7上工作正常,但是当在世界场景中使用此代码时,就会出现问题。与客户端服务器概念的偏差(例如:客户端同时充当服务器)。Web 服务可以通过在 Web 方法中使用以下代码来获取客户端 IP 地址

string IPAddress = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
string port = HttpContext.Current.Request.ServerVariables["REMOTE_PORT"];
if (IPAddress == null)
{ 
            IPAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}

但这不会提供客户端的真实 IP 地址。这取决于网络设备和 ISP 策略。因此,在采用这种方法之前,最好重新考虑设计。但这在本地网络中有效。