新聞中心
WCF地址能否獲取客戶端地址IP信息,好多人都遇到過,我們傳統(tǒng)的機遇的網(wǎng)絡(luò)應(yīng)用和 Web Service都提供了獲取客戶端地址的信息的實現(xiàn)機制。下面進(jìn)行介紹說明。

10年積累的做網(wǎng)站、成都網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有競秀免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
WCF地址主要使用是.NET3.5里的服務(wù)端上下文的消息實例的RemoteEndpointMessageProperty屬性,獲取客戶端地址信息。但是限制的綁定是HTTP、TCP相關(guān)的綁定協(xié)議。網(wǎng)絡(luò)通信的底層機制來說,數(shù)據(jù)包如果經(jīng)由TCP傳輸,IP數(shù)據(jù)包應(yīng)該包含地址和端口信息,WCF地址這個我們網(wǎng)絡(luò)編程也可以理解。但是WCF獲取客戶端地址信息早期卻沒提供相應(yīng)的實現(xiàn)。其實按照道理來說沒什么難度。只是多做個數(shù)據(jù)包的解析工作,然后把地址信息包裝即可。#t#
WCF地址示例代碼:
這里給出服務(wù)端獲取客戶端IP地址信息的示例代碼分析和實現(xiàn)過程,這里的測試主要是針對HTTP、TCP相關(guān)的協(xié)議做了4個測試。NamePipeBinding等協(xié)議不做測試了,本地協(xié)議不需要IP和端口。我們主要測試的是幾個主要的協(xié)議,來驗證以上的結(jié)論。
服務(wù)端:
主要是對RemoteEndpointMessageProperty屬性的使用來獲取地址、端口信息。WCF地址具體代碼如下:
- 服務(wù)契約
- [ServiceContract(Namespace = "http://www.cnblogs.com/frank_xl/")]
- public interface IWCFService
- {
- //操作契約
- [OperationContract]
- string SayHelloToUser(string name);
- }
- //服務(wù)類,繼承接口。實現(xiàn)服務(wù)契約定義的操作
- public class WCFService : IWCFService
- {
- //實現(xiàn)接口定義的方法
- public string SayHelloToUser(string name)
- {
- //提供方法執(zhí)行的上下文環(huán)境
- OperationContext context = OperationContext.Current;
- //獲取傳進(jìn)的消息屬性
- MessageProperties properties = context.IncomingMessageProperties;
- //獲取消息發(fā)送的遠(yuǎn)程終結(jié)點IP和端口
- RemoteEndpointMessageProperty endpoint = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
- Console.WriteLine(string.Format("Hello {0},You arefrom {1}:{2}", name, endpoint.Address,endpoint.Port));
- return string.Format("Hello {0},You arefrom {1}:{2}", name, endpoint.Address, endpoint.Port);
- }
- }
網(wǎng)站名稱:進(jìn)行WCF地址代碼進(jìn)行說明
文章出自:http://www.dlmjj.cn/article/copeshj.html


咨詢
建站咨詢
