wcf纯代码实现http服务

技术wcf纯代码实现http服务 wcf纯代码实现http服务数据结构public enum AgvUpgradeStep{VersionCheck = 0,Downloading = 1,Updati

世界商会联合会纯代码实现超文本传送协议(超文本传输协议的缩写)服务

数据结构

公共枚举AgvUpgradeStep

{

版本检查=0,

下载=1,

更新=2,

引导=3

}

公共枚举agvupgradeeresult

{

成功=0,

Running=1,

失败=2

}

[数据合同]

公共类AgvUpgradeProgress

{

[数据成员]

公共AgvUpgradeStep步骤;

[数据成员]

公共agvupgradeeresult状态;

[数据成员]

公共字符串系统错误信息表

}

一定义协定

[服务合同]

公共接口测试

{

[运营合同]

[WebGet(UriTemplate=' DownloadFile ')]//DownloadFilePath={ path }

stream DownloadFile();

[WebInvoke(方法='POST ',UriTemplate='TestJson ',响应格式=WebMessageFormat .Json,RequestFormat=WebMessageFormat .Json)]

[运营合同]

stream TestJson(AgvUpgradeProgress进度);

}

2实现协定

[服务行为(实例上下文模式=实例上下文模式.单一)]

公共类TestHttpService : testhttpinterface

{

公共字符串升级文件

公共流下载文件()

{

if (WebOperationContext .当前==null)引发新异常("未设置WebOperationContext

如果(字符串IsNullOrEmpty(升级文件))

{

返回空

}

如果(文件。存在(升级文件)=假)

{

返回空

}

变量文件名=路径. GetFileName(升级文件);

网络操作上下文.当前。外向回应。内容类型=“应用程序/八位字节流”;

网络操作上下文.当前。外向回应。标题。add(' content-disposition ',' inlinefilename=' Uri .擒纵数据字符串(FIlename));

返回文件OpenRead(升级文件);

}

公共流测试Json(AgvUpgradeProgress进度)

{

job object o=new Jobject();

o[' ret ']=' ok ';

网络操作上下文.当前。OutWangResponse。content type=' application/JSON;charset=utf-8 ';

返回新的内存流(编码. UTF8。GetBytes(o . ToString());

}

}

3创建/配置服务

1 //创建服务

2 var wcf _ file _ service=new TestHttpService;

3 //创建服务主机

4 var file _ service _ host=新服务主机(wcf _ file _ service);

5 //获取协定

6 var wcf合同=合同描述.GetContract(类型为(AgvUpgradeHttpInterface));

8字符串地址=@ ' http://0 .0 .0 .0:8888 ';

9

10 var binding=new WebHttpBinding();

11装订MaxBufferPoolSize=524288

12装订MaxBufferSize=67108864

13装订MaxReceivedMessageSize=67108864;

14装订转移模式=转移模式.流式传输;

15

16 var服务端点=新服务端点(wcf联系人、绑定、新端点地址(address));

17

18 var httpBehavior=new WebHttpBehavior();

19 httpBehavior .DefaultOutgoingRequestFormat=Webmessageformat .数据

20 httpBehavior .defaultoutingresponseformat=Webmessageformat .数据

21服务端点.端点行为。添加(新的WebHttpBehavior());

22

23文件_服务_主机AddServiceEndpoint(服务端点);

24

25 var服务元数据=新服务元数据行为();

26服务元数据HttpGetEnabled=真

27服务元数据HttpsGetEnabled=true

28服务元数据HttpGetUrl=new Uri($ ' { address }/services ');

29文件_服务_主机。描述。行为。添加(服务元数据);

30

31

32

33文件_服务_主机打开=委托{控制台。写线(‘WCF文件服务器已经启动!');};

34文件_服务_主机open();

35

36 //获取本机互联网协议(互联网协议的缩写)

37 /*字符串strHostName=字符串.空的;

38 IPHostEntry ipEntry=Dns .GetHostEntry(Dns .GetHostName());

39 IPAddress[] addr=ipEntry .地址列表

40

41表示(int I=0;我加了。长度;(一)

42 {

43控制台写线(' IP地址{0}: {1},I,addr[i].ToString());

44 }*/

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/37488.html

(0)

相关推荐

  • debug P命令跟踪程序时遇到Int 21使用P命令的分析

    技术debug P命令跟踪程序时遇到Int 21使用P命令的分析debug P命令跟踪程序时遇到Int 21使用P命令的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能

    攻略 2021年11月11日
  • Python环境变量的示例分析

    技术Python环境变量的示例分析这篇文章将为大家详细讲解有关Python环境变量的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Python环境变量具有一个强大灵活的工业级的

    攻略 2021年12月1日
  • sql语句优化方法有哪些(sql优化常用面试题)

    技术SQL优化方法有哪些这篇文章主要讲解了“SQL优化方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL优化方法有哪些”吧!一、避免进行null判断 应

    攻略 2021年12月22日
  • 如何配置mariadb远程访问权限解决数据库乱码问题

    技术如何配置mariadb远程访问权限解决数据库乱码问题这篇文章主要介绍如何配置mariadb远程访问权限解决数据库乱码问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!配置mariadb远程访问

    攻略 2021年11月24日
  • Web开发中Kendo UI for jQuery数据管理列模板是怎样的

    技术Web开发中Kendo UI for jQuery数据管理列模板是怎样的Web开发中Kendo UI for jQuery数据管理列模板是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想

    攻略 2021年11月16日
  • Oracle中怎么保证用户只有一个Session登录

    技术Oracle中怎么保证用户只有一个Session登录小编给大家分享一下Oracle中怎么保证用户只有一个Session登录,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

    攻略 2021年11月18日