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)

相关推荐

  • Python中正则表达式的巧妙用法是怎么样的

    技术Python中正则表达式的巧妙用法是怎么样的Python中正则表达式的巧妙用法是怎么样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 前言正则表达

    攻略 2021年10月26日
  • 通过爬虫代理IP快速增加博客阅读量的示例分析

    技术通过爬虫代理IP快速增加博客阅读量的示例分析通过爬虫代理IP快速增加博客阅读量的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先题目所说的

    攻略 2021年10月28日
  • iOS如何实现应用退出场景

    技术iOS如何实现应用退出场景这篇文章主要介绍了iOS如何实现应用退出场景,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。场景描述:应用处于运行状态(即Ac

    攻略 2021年10月21日
  • 内衣码数对照表,谁能给我女性内衣的尺码表啊

    技术内衣码数对照表,谁能给我女性内衣的尺码表啊尺寸的测量 1. 罩杯尺寸
    罩杯尺寸 = 胸围 -下胸围
    (例如内衣码数对照表:10cm=A罩杯.13cm=B罩杯.15cm=C罩杯 18cm=D罩杯.20cm=E罩杯)

    生活 2021年10月24日
  • 女领导有请,如何与不懂权谋的女领导相处

    技术女领导有请,如何与不懂权谋的女领导相处如何与不懂权谋的女领导相处女领导有请?这个问题让我看到许多可谋取的工作利益,因为我曾经就遇到过这样的搭配,女领导只有职权没有强项,但却突显出她手底下的员工更加优秀。其实不管是女领

    生活 2021年10月21日
  • qt画切片地图(qt 地图演示)

    技术Qt编写地图综合应用之如何绘制雨量分布这篇文章主要介绍Qt编写地图综合应用之如何绘制雨量分布,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、前言雨量分布图是在区域地图基础上,针对区域中的每个

    攻略 2021年12月25日