0

正如我已经弄清楚的那样。我想在 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 服务的任何资源。谢谢!!

4

1 回答 1

0

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

于 2012-06-29T09:02:54.927 回答