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)

相关推荐

  • 【题解】CF1592F-Alice and Recoloring

    技术【题解】CF1592F-Alice and Recoloring 【题解】CF1592F-Alice and Recoloring很神的思维题。
    观察以下发现对于矩阵取反非常不好做。
    这时候我们可以

    礼包 2021年11月7日
  • MySQL server has gone away两种有效的解决办法

    技术MySQL server has gone away两种有效的解决办法MySQL server has gone away两种有效的解决办法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决

    攻略 2021年12月3日
  • Java如何将Word转为PDF、PNG、SVG、RTF、XPS、TXT、XML

    技术Java如何将Word转为PDF、PNG、SVG、RTF、XPS、TXT、XML小编给大家分享一下Java如何将Word转为PDF、PNG、SVG、RTF、XPS、TXT、XML,相信大部分人都还不怎么了解,因此分享

    攻略 2021年11月24日
  • COCOS CREATOR中SrollView如何修改

    技术COCOS CREATOR中SrollView如何修改这篇文章主要为大家展示了“COCOS CREATOR中SrollView如何修改”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并

    攻略 2021年11月19日
  • 好用的开源JavaScript图表库有哪些

    技术好用的开源JavaScript图表库有哪些这篇文章主要介绍好用的开源JavaScript图表库有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、 Chart.jsChart.js 是一个

    攻略 2021年10月30日
  • win7上MySQL5.6如何安装与测试

    技术win7上MySQL5.6如何安装与测试这篇文章主要为大家展示了“win7上MySQL5.6如何安装与测试”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“win7上MySQ

    攻略 2021年12月4日