使用 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 服务的任何资源。谢谢!!
部署 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 策略。因此,在采用这种方法之前,最好重新考虑设计。但这在本地网络中有效。