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)

相关推荐

  • 分数化小数,数学家是怎么将分数化为小数的

    技术分数化小数,数学家是怎么将分数化为小数的说说自己吧分数化小数!1986年看了《小学数学教师》第4期鲍刚的一篇《质数之最》,产生了对数的计算。于是,贪黑爬半夜地算分数化小数。
    开始用竖式计算单位分数化小数。
    这样算,觉

    生活 2021年10月28日
  • 如何理解Python网络爬虫和web的系统学习路线图

    技术如何理解Python网络爬虫和web的系统学习路线图如何理解Python网络爬虫和web的系统学习路线图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法

    攻略 2021年10月25日
  • python selenium菜鸟教程(seleniumpython自动化测试实战)

    技术Python + selenium 自动化测试框架是怎样的今天就跟大家聊聊有关Python + selenium 自动化测试框架是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根

    攻略 2021年12月21日
  • Java程序最容易犯的错误有哪些呢

    技术Java程序最容易犯的错误有哪些呢今天就跟大家聊聊有关Java程序最容易犯的错误有哪些呢,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  1.Duplicat

    攻略 2021年11月16日
  • 画眉鸟翻译,画眉鸟这首古诗是什么意思

    技术画眉鸟翻译,画眉鸟这首古诗是什么意思译文画眉鸟翻译: 千百声的鸟啭,任意回荡著, (就在那)山花万紫千红绽放,高低有致的林木里.
    这才明白:(以前)听到那锁在金笼内的画眉叫声,
    远比不上悠游林中时的自在啼唱.《画

    2021年10月24日
  • 省略的拼音,举例说明ü上两点的省略规律

    技术省略的拼音,举例说明ü上两点的省略规律y和u不会相遇,ü遇到y要去两点,读音不变!ü遇到j、q、x、y去掉上面的点。拼读规则:ü行的韵母跟声母j,q,x拼的时候,写成ju,qu,xu,jue,que,xue,ü上两点

    生活 2021年10月23日