WCFStream实际应用功能体验

WCF中的Stream操作有很多使用方法,其中有一种比较常用的就是我们今天为大家介绍的关于实现上传大文件的操作方法。在这里我们就会通过这篇文章为大家详细介绍一下相关的操作方法。

潞州ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

WCF Stream操作步骤之Test.ASPX.C

 
 
 
  1. protected void Button3_Click(object sender, EventArgs e)  
  2. {  
  3. FileData file = new FileData();  
  4. file.filename = FileUpload1.FileName;  
  5. file.data = new FileStream(FileUpload1.PostedFile.
    FileName, FileMode.Open);  
  6. GetDataServiceClient c = new GetDataServiceClient();  
  7. c.UploadFile(file.filename, file.data);  
  8. Response.Write("文件传输成功!");  
  9. c.Close();  

WCF Stream操作步骤之Contract

 
 
 
  1. [ServiceContract]  
  2. public interface IGetDataService  
  3. {  
  4. [OperationContract]  
  5. void UploadFile(FileData file);  
  6. }  
  7. [MessageContract]  
  8. public class FileData  
  9. {  
  10. [MessageHeader]  
  11. public string filename;  
  12. [MessageBodyMember]  
  13. public Stream data;  

WCF Stream操作步骤之ServiceLib

 
 
 
  1. public class GetDataService : IGetDataService  
  2. {  
  3. public void UploadFile(FileData file)  
  4. {  
  5. FileStream fs = new FileStream("Files\\"+file.filename, 
    FileMode.OpenOrCreate);  
  6. try  
  7. {  
  8. BinaryReader reader = new BinaryReader(file.data);  
  9. byte[] buffer;  
  10. BinaryWriter writer = new BinaryWriter(fs);  
  11. long offset = fs.Length;  
  12. writer.Seek((int)offset, SeekOrigin.Begin);  
  13. do  
  14. {  
  15. buffer = reader.ReadBytes(1024);  
  16. writer.Write(buffer);  
  17. } while (buffer.Length > 0);  
  18. }  
  19. catch(Exception e)  
  20. {  
  21. }  
  22. finally  
  23. {  
  24. fs.Close();  
  25. file.data.Close();  
  26. }  
  27. }  

WCF Stream操作步骤之App.config

 
 
 
  1. < ?xml version="1.0" encoding="utf-8" ?> 
  2. < configuration> 
  3. < system.serviceModel> 
  4. < services> 
  5. < !--name - 提供服务的类名--> 
  6. < !--behaviorConfiguration - 指定相关的行为配置--> 
  7. < service name="ServiceLib.GetDataService" 
    behaviorConfiguration="BindingBehavior"> 
  8. < !--address - 服务地址--> 
  9. < !--binding - 通信方式--> 
  10. < !--contract - 服务契约--> 
  11. < !--< endpoint binding="basicHttpBinding" contract=
    "WCF.ServiceLib.Binding.IHello" address="Hello" />--> 
  12. < !--元数据交换的endpoint--> 
  13. < !--注:address是mex,它会和host/baseAddresses节点中的baseAddress做拼接,
    即提供元数据交换的地址为:http://localhost:12345/Binding/mex--> 
  14. < endpoint binding="basicHttpBinding" bindingConfiguration =
    "DocumentExplorerServiceBinding" contract="Contract.IGetDataService" 
    address="mex" /> 
  15. < host> 
  16. < baseAddresses> 
  17. < add baseAddress="http://localhost:8008/"/> 
  18. < /baseAddresses> 
  19. < /host> 
  20. < /service> 
  21. < /services> 
  22. < behaviors> 
  23. < serviceBehaviors> 
  24. < behavior name="BindingBehavior"> 
  25. < !--httpGetEnabled - 使用get方式提供服务--> 
  26. < serviceMetadata httpGetEnabled="true" /> 
  27. < /behavior> 
  28. < /serviceBehaviors> 
  29. < /behaviors> 
  30. < bindings> 
  31. < basicHttpBinding> 
  32. < binding name="DocumentExplorerServiceBinding" 
  33. sendTimeout="00:10:00" 
  34. transferMode="Streamed" 
  35. maxReceivedMessageSize="9223372036854775807"> 
  36. < /binding> 
  37. < /basicHttpBinding> 
  38. < /bindings> 
  39. < /system.serviceModel> 
  40. < /configuration> 

WCF Stream操作步骤之web.config

 
 
 
  1. < system.serviceModel> 
  2. < bindings> 
  3. < basicHttpBinding> 
  4. < binding name="BasicHttpBinding_IGetDataService" closeTimeout="00:01:00" 
  5. openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" 
  6. allowCookies="false" bypassProxyOnLocal="false" 
    hostNameComparisonMode="StrongWildcard" 
  7. maxBufferSize="65536" maxBufferPoolSize="524288" 
    maxReceivedMessageSize="65536" 
  8. transferMode="Streamed" 
  9. useDefaultWebProxy="true"> 
  10. < readerQuotas maxDepth="32" maxStringContentLength="8192" 
    maxArrayLength="16384" 
  11. maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
  12. < security mode="None"> 
  13. < transport clientCredentialType="None" proxyCredentialType="None" 
  14. realm="" /> 
  15. < message clientCredentialType="UserName" algorithmSuite="Default" /> 
  16. < /security> 
  17. < /binding> 
  18. < /basicHttpBinding> 
  19. < /bindings> 
  20. < client> 
  21. < endpoint address="http://192.168.0.19:8008/mex" 
    binding="basicHttpBinding" 
  22. bindingConfiguration="BasicHttpBinding_IGetDataService" 
    contract="IGetDataService" 
  23. name="BasicHttpBinding_IGetDataService" /> 
  24. < /client> 
  25. < /system.serviceModel> 

以上就是我们为大家详细介绍的有关WCF Stream的操作方法。

分享名称:WCFStream实际应用功能体验
分享网址:http://www.shufengxianlan.com/qtweb/news41/253891.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联