日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Silverlight与WCF之间的通信(4)silverlight以net.tcp方式调用console上寄宿的wcf服务

發(fā)布時間:2023/12/6 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Silverlight与WCF之间的通信(4)silverlight以net.tcp方式调用console上寄宿的wcf服务 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

(由于最近是針對一個demo進行的研究,在之前公開過代碼結(jié)構(gòu),這里只是對需要改動的地方加以說明)

WCF4.0使得編寫wcf服務不再那么復雜,去掉了許多的配置信息,客戶端只需要一個服務地址,便可在系統(tǒng)生成的代理類下做開發(fā)了,在部署時也只需要更改引用配置文件的地址即可。但是今天我嘗試silverlight以net.tcp方式連接host到console上的wcf服務時,卻頗費周折,一個wcf console server 和一個console client 之間的通信很簡單,不需要任何配置,但是silverlight如果想引用這個服務,則必須為服務定義元數(shù)據(jù)才能供silverlight生成代理類,如果直接用之前的服務,會產(chǎn)生錯誤。

WCF服務端配置

這個是簡單的服務,沒有任何配置,本次我是想完全由配置文件來解決信息公開的問題,所以服務端實際上很簡單

????? host = new ServiceHost(typeof(ChatService));??
????? host.Open();?
在silverlight引用時會出現(xiàn)找不到元數(shù)據(jù)的情況,原因是沒有公開服務的描述信息,沒有元數(shù)據(jù)無法讓外界知道服務的信息,所以經(jīng)過反復的試驗后終于能夠正常訪問到服務,配置文件有兩種情況:

1,如果沒有配置基地址,則終結(jié)點的地址采用全地址??
??
?

代碼 <system.serviceModel>?
????
<services>?
??????
<service?behaviorConfiguration="Server.ChatServiceBehavior"?name="Server.ChatService">?
????????
<endpoint?address="net.tcp://localhost:4503/ChatService"?binding="netTcpBinding"?contract="Server.IChatService"></endpoint>?
????????
<endpoint?address="net.tcp://localhost:4503/ChatService/mex"?binding="mexTcpBinding"?contract="IMetadataExchange"?></endpoint>????????
??????
</service>?????
????
</services>?
????
<behaviors>?
??????
<serviceBehaviors>?
????????
<behavior?name="Server.ChatServiceBehavior">?
??????????
<serviceMetadata?httpGetEnabled="false"/>?
??????????
<serviceDebug?includeExceptionDetailInFaults="false"/>?
??????
</behavior>?
??????
</serviceBehaviors>?
????
</behaviors>?

?

2,如果配置了基地址,則終結(jié)點的地址采用相對地址

?

代碼 <system.serviceModel>?
????
<services>?
??????
<service?behaviorConfiguration="Server.ChatServiceBehavior"?name="Server.ChatService">?
????????
<endpoint?address=""?binding="netTcpBinding"?contract="Server.IChatService"></endpoint>?
????????
<endpoint?address="mex"?binding="mexTcpBinding"?contract="IMetadataExchange"?></endpoint>?
????????
<host>?
??????????
<baseAddresses>?
????????????
<add?baseAddress="net.tcp://localhost:4503/ChatService/"/>?
??????????
</baseAddresses>?
????????
</host>?
??????
</service>?
????
</services>?

?3,其實,也可以通過HTTP獲得元數(shù)據(jù),如下配置即可?

<endpoint?address="http://localhost:4503/ChatService/mex"?binding="mexHttpBinding"?contract="IMetadataExchange"?></endpoint>?

?4,一定要注意安全配置這里設(shè)置一下,否則默認會有局域網(wǎng)的賬戶驗證什么的。?

<bindings>?
??????
<netTcpBinding>?
????????
<binding?name="netTcpBindConfig">?
??????????
<security?mode="None"/>?
????????
</binding>?
??????
</netTcpBinding>?
????
</bindings>

?5,行為配置?

代碼

????<behaviors>?
??????
<serviceBehaviors>?
????????
<behavior?name="Server.ChatServiceBehavior">?
??????????
<serviceMetadata?/>?
??????????
<serviceDebug?includeExceptionDetailInFaults="false"/>?
??????
</behavior>?
??????
</serviceBehaviors>?
????
</behaviors>?
??
</system.serviceModel>

?到這里,服務已經(jīng)通過net.tcp方式建立起來了,靜候silverlight客戶端的調(diào)用了。

silverlight調(diào)用

silverlight以tcp方式訪問服務器時,只能夠訪問固定的端口,需要一個策略文件驗證,我們只需要將這個策略文件放到IIS下即可。

代碼 void?MainPage_Loaded(object?sender,?RoutedEventArgs?e)?
????????{?
????????????ChatService.ChatServiceClient?proxy?
=?new?ChatService.ChatServiceClient();?
????????????proxy.SendMessageCompleted?
+=?(o,ev)?=>?{?
????????????????
string?str?=?string.Empty;?
????????????????
if?(ev.Error?==?null)?
????????????????{?
????????????????????str?
=?"發(fā)送成功";?
????????????????}?
????????????????
else?
????????????????{?
????????????????????str?
=?"發(fā)送失敗";?
????????????????}?
????????????????MessageBox.Show(str);?
????????????};?
????????????proxy.SendMessageAsync(
new?ChatService.MessageInfo()?{?Message="hello,leon",?UserName="mac",?PartnerName="leon"});?
????????}

?

?注意,一定要將策略文件放到IIS下面。




? ? ?本文轉(zhuǎn)自wengyuli 51CTO博客,原文鏈接:http://blog.51cto.com/wengyuli/587227,如需轉(zhuǎn)載請自行聯(lián)系原作者




總結(jié)

以上是生活随笔為你收集整理的Silverlight与WCF之间的通信(4)silverlight以net.tcp方式调用console上寄宿的wcf服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品久久久久久中文字 | 成人国产av一区二区三区 | 免费日韩精品 | 三级网站在线播放 | 777久久久| 久久久久久久国产 | 欧美作爱视频 | 森泽佳奈作品在线观看 | 成人欧美一区二区三区黑人 | 强侵犯の奶水授乳羞羞漫虐 | 一区二区三区美女 | 国产激情视频一区 | 国产精品呦呦 | 日韩欧美色 | aa亚洲 | 免费观看黄一级视频 | 国产精品18久久久久久vr下载 | 色婷婷av一区二区 | 欧美色图自拍 | 亚洲国产一区二区三区在线观看 | 嫩草视频在线看 | 人妻 校园 激情 另类 | 欧美色噜噜 | 日日干狠狠干 | 67194成人在线观看 | 国产成人精品视频ⅴa片软件竹菊 | 亚洲国产私拍精品国模在线观看 | 6680新视觉电影免费观看 | 日韩二区视频 | 国产性自拍 | 欧美高清一区 | 天天操天天摸天天干 | 国产69精品久久久 | 日韩精品一二三区 | 成人av片在线观看 | 狠狠干天天 | 精品网站999 | 国产精品日本一区二区在线播放 | www.亚洲人| 无码国产色欲xxxx视频 | 一区二区三区免费 | 亚洲高清视频一区 | 欧美高清在线一区 | 欧美日韩一卡二卡 | 欧亚在线视频 | 久艹在线观看视频 | 国产三级一区二区 | 毛毛毛片 | 可以看的av网站 | 久久久高清视频 | 丰满少妇高潮久久三区 | 国产成人精品亚洲 | 中文av一区 | 久久久久久天堂 | 亚洲成人h | 久久国产片 | 亚洲亚裔videos黑人hd | 一级淫片免费看 | 蜜桃色一区二区三区 | 亚洲欧美综合自拍 | missav|免费高清av在线看 | 国产情侣av自拍 | 性精品 | 欧美日韩成人免费观看 | 播色网| 粗口调教gay2022.com | 精品国产一区二区在线观看 | 亚洲第一精品网站 | 伊人影院在线播放 | 国产一区二区三区黄片 | 日韩一区高清 | 国产欧美日韩久久 | 2022精品国偷自产免费观看 | 97精品熟女少妇一区二区三区 | 日本大乳美女 | 日韩av手机在线观看 | 人人澡人人澡人人澡 | 好吊视频一区二区三区四区 | 高清av一区二区 | 亚洲精品视频大全 | 黄色资源在线 | 99久热在线精品996热是什么 | 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 中文字幕丰满乱子伦无码专区 | 成人午夜天 | 日本一区免费 | 蜜臀尤物一区二区三区直播 | 在线看h网站 | 欧美一区二区久久 | 亚洲精品免费观看 | 亚洲国产精品天堂 | 欧美性生活在线视频 | 影音先锋中文字幕第一页 | www.成人在线视频 | 久久人成 | 一级少妇毛片 | 国产又大又硬又粗 | 午夜精品久久99蜜桃的功能介绍 | 久久久久久福利 |