天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

asp.net下使用DIME協議上傳文件

在某些Web Service的應用場景下,例如公文的傳送,在Web Service返回結果的同時將word文檔及其它附件返回,這時候可以使用DIME協議來進行文件的傳輸。使用它來傳輸不需要經過SOAP消息的序列化/反序列化,有很高的效率。當然這里要用到Web Services Enhancements (WSE) ,目前的最新版本為3.0。本文中所使用的版本為2.0sp2,有趣的是WSE的各個版本中的命令空間都有很大的變化。這一點的確有點讓人苦惱!在安裝WSE時推薦將Visual Studio Tools也安裝上,這樣會免去手工修改Web Service的Web.config文件的工作。
本文的示例下載:http://www.cnblogs.com/Files/lcybest/DIMESample.rar
Web Service:
首先要引用Microsoft.Web.Services2.dll,修改Web.config文件,將下面這段配置添加進去:
<webServices>
<soapExtensionTypes>
<add type="Microsoft.Web.Services2.WebServicesExtension, Microsoft.Web.Services2, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" priority="1" group="0" />
</soapExtensionTypes>
</webServices>
</system.web>
如果你安裝了WSE的Visual Studio工具,以上工作可以通過工具來實現。
下面的代碼演示了在ResponseSoapContext中加入DIME附件的實現:
[WebMethod]
public string GetDocument(string DocumentId)
{
if(DocumentId.Length==0)
return "DocumentId can not be empty!";
Attachment attach=new Attachment(Guid.NewGuid().ToString(),@"D:/test.doc");
Microsoft.Web.Services2.ResponseSoapContext.Current.Attachments.Add(attach);
return "SendOK";
}
我們使用一個windows應用程序來演示一下可以接收Web Service附件的客戶端
首先要將Microsoft.Web.Services2.dll引用到項目中,添加對Web Service的引用。此時如果安裝了WSE工具會自己動生成一個以“WSE”為結尾的代理類。在代碼中可以直接使用這個代理類。
如果沒有安裝工具則需要手工修改Visual Studio生成的代理類,代理類默認是從System.Web.Services.Protocols.WebClientProtocol繼承的,在這里要修改為從Microsoft.Web.Services2.WebServicesClientProtocol來繼承。
在我們客戶端中可以通過以下代碼來實現將Response中的文件取出來保存到文件系統中:
 程序代碼
private void button1_Click(object sender, System.EventArgs e)
{
TalkServer.DataInterface client=new DIMEClient.TalkServer.DataInterface();
string strvalue=client.GetDocument("test111");
if(client.ResponseSoapContext.Attachments.Count==0)
{
MessageBox.Show("No Attachments in the webservice response!");
return;
}
Microsoft.Web.Services2.Attachments.Attachment attach;
attach=client.ResponseSoapContext.Attachments[0];
byte[] buffer=new byte[attach.Stream.Length];
client.ResponseSoapContext.Attachments[0].Stream.Read(buffer,0,buffer.Length);
System.IO.FileStream stream=new System.IO.FileStream(@"C:/test.doc",System.IO.FileMode.Create);
stream.Write(buffer,0,buffer.Length);
stream.Flush();
stream.Close(); 
if(strvalue=="SendOK")
MessageBox.Show("Receive succeed");
else
MessageBox.Show("Receive fail");
}

AspNet技術asp.net下使用DIME協議上傳文件,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 99re8热视频这在线视频 | 国产精品色午夜视频免费看 | 日韩亚洲欧美中文高清在线 | 黑人巨茎大战白人女40CMO | 99re8在线视频精品 | 18禁无遮遮挡羞漫画免费阅读 | 不戴套挺进人妻怀孕 | 欧美A级肉欲大片XXX | 强姧伦久久久久久久久 | 欧美日韩午夜群交多人轮换 | 真实处破女全过程完免费观看 | 国产精品人妻无码久久久2022 | 国产高清超清在线播放 | 嫩草影院永久在线一二三四 | 亚洲人成网站在线播放 | 日操夜操天天操 | 国产亚洲精品香蕉视频播放 | 国产乱人视频在线观看 | jizz丝袜| 国产又色又爽又刺激在线播放 | 99久久免热在线观看 | 亚洲黄视频在线观看 | 免费女性裸身照无遮挡网站 | 一级淫片bbbxxx | 亚洲色噜噜狠狠站欲八 | 亚洲日韩有码无线免费 | 试看做受120秒免费午夜剧场 | 神马电影dy888午夜我不卡 | 色偷偷超碰97人人澡人人 | 新香蕉少妇视频网站 | 爱穿丝袜的麻麻3d漫画acg | 午夜精品久久久久久影视riav | 天天夜夜草草久久亚洲香蕉 | 国产叼嘿久久精品久久 | 国产白丝精品爽爽久久蜜臀 | 日韩AV无码一区二区三区不卡毛片 | 亚洲一区二区三区免费看 | 国产专区亚洲欧美另类在线 | 神电影院午夜dy888我不卡 | 国产精品免费一区二区三区四区 | 国产精品久久人妻拍拍水牛影视 |