Linux学习日记-WCF RestFul的部署(三)

一、关于WCF 的部署

默认的wshttp风格的wcf是很容易部署上去的,但是这里给个建议尽量不要使用WCF的配置文件去部署尽管

我们都已经很熟悉了,在使用配置文件你会发现各种蛋疼的问题。

二、WCF Restful的部署

以下是简单的目录:

   

最主要的是主机的代码:

      注: 一定要用代码,而不用配置文件 否则帮助页、默认返回格式什么的以配置就报异常

接口IService 类
using System;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;

namespace Services
{
    [ServiceContract]
    public interface IService
    {
        [OperationContract,WebGet(UriTemplate="test/{name}")]
        string GetData (string name);
    }
}

服务Service 类
using System;

namespace Services
{
    public class Service:IService
    {
        public string GetData(string name)
        {
            return name;        }
    }
}

主机启动服务的方法:

using System;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.ServiceModel.Description;
using Services;

namespace Hosting
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            using (WebServiceHost host = new WebServiceHost (typeof(Services.Service))) {
                //host.AddServiceEndpoint(typeof(ICalculator), new WebHttpBinding(), "http://127.0.0.1:9999/");

                ServiceEndpoint endpoint = host.AddServiceEndpoint(typeof(Services.IService), new WebHttpBinding(), "http://127.0.0.1:9999/");
                if (host.Description.Behaviors.Find<WebHttpBehavior> () == null) {
                    WebHttpBehavior httpBehavior = new WebHttpBehavior ();
                    httpBehavior.HelpEnabled = true; //打开帮助页
                    httpBehavior.DefaultOutgoingResponseFormat = WebMessageFormat.Json;//指定返回格式为“Json”
                    httpBehavior.DefaultBodyStyle = WebMessageBodyStyle.Bare; //正文消息样式
                    httpBehavior.AutomaticFormatSelectionEnabled = false; //是否自动返回格式
                    endpoint.Behaviors.Add (httpBehavior);//添加终结点
                }
                host.Opened += delegate {
                    Console.WriteLine ("服务已启动!");
                };
                host.Open();
                Console.ReadKey();
            }
        }
    }
}

using System;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;

namespace Services
{
    [ServiceContract]
    public interface IService
    {
        [OperationContract,WebGet(UriTemplate="test/{name}")]
        string GetData (string name);
    }
}

时间: 2024-07-30 18:46:12

Linux学习日记-WCF RestFul的部署(三)的相关文章

Linux学习日记-MVC的部署(三)

一.Mvc与wcf 相对WCF的部署MVC还是有点麻烦,我们要考虑哪些dll是不需要的,哪些是要拷贝到本地的. 而WCF因为有些配置文件不支持,我们只需要在配置wcf时不使用配置文件而直接使用代码就行了. 二.MVC部署 开发环境:VS2013 +Mono 3.10.0+Jexus5.6.3 +.net 4.0 1.新建MVC项目,选择空的MVC项目 注:这里选择空的mvc项目主要是防止不必要的dll被引用进来,但是与项目又不兼容 2.配置DLL的问题 注:很重要不然会有各种报错 下面这6个dl

Linux学习日记——源码编译Apache

[本文为笔者在学习Linux 下的软件安装时,尝试使用源码安装Apache 的过程,事后进行一个小小的总结,发现错误望指正.] 一.典型的源码编译安装软件的过程包括以下3步: 1) 运行 configure 命令,并结合必要的参数以生成Makefile :(读者可以自行百度Makefile 相关知识) 2) 运行 make 命令生成各类模块和主程序: 3) 运行 make install 命令将必要的文件复制到安装目录中. (以上过程都在对应软件安装包的根目录中进行) 二.安装过程 Linux

Linux学习日记—使用Shell变量

Shell变量用来存放系统和用户需要使用的特定参数(值),而且这些参数可以根据用户的设定或系统环境的变化而相应的变化. [变量的作用] 为灵活管理Linux系统提供特定参数,而有两层意思: 1.变量名:使用固定的名称,由系统预设或用户自定义 2.变量值:能够根据用户设置,系统环境的变化而变化 [变量的类型] 1.自定义变量:由用户自己定义,修改和使用 2.环境变量:由系统维护,用于设置工作环境 3.位置变量:通过命令行给脚本程序传递参数 4.预定义变量:Bash中内置一类变量,不能直接修改 [自

Linux学习日记(一)

对于Linux新手来说,要想入门必先打好基础,而Linux的命令就是这基础中的重中之重. 首先学习了帮助命令Man的使用,Man可以查看命令的作用以及可用参数.并且如何去看帮助文档中的内容 NAME 使用命令的名称 SYNOPSIS   命令参数的大致使用方法 EXAMPLES     命令的演示 OPTIONS    命令具体的可用选项 然后去学了常用的系统工作命令,首先是echo命令,这个命令的作用是将字符串或者变量提取后的值在终端显示出来. date命令,查看日期的作用,还有修改时间的作用

Linux学习日记--基础命令(5)--用户和组概念与管理--文件权限

用户和组管理: 以下区间区别于centos6,和centos7  Linux用户:Username/UID        管理员:root, 0        普通用户:1-65535            系统用户:1-499, 1-999                 对守护进程获取资源进行权限分配:            登录用户:500+, 1000+                交互式登录: Linux组:Groupname/GID         管理员组:root, 0    

Linux学习日记(常用命令)

su sudo passwd 重置密码 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 

Linux学习日记之yum源的搭建及共享

一.软件的安装软件的安装有两种方法,一种是rpm,安装,一种是yum安装,rpm安装缺点是无法解决软件的依赖关系,对于软件的依赖关系,需要手动,一个一个的安装,比较麻烦,yum安装能够很好的解决软件的依赖关系.1.rpm结尾的软件包适用于Linux系统2.安装:1)rpm命令及参数的使用 rpm -ivh name.rpm安装软件,-v:显示过程,-h:指定加密方式(hash加密)rpm -e name卸载软件rpm -ql name查询软件安装后会生成什么文件(安装后才能看到)rpm -qlp

linux学习日记之老男孩

2016年10月5日企业面试题:cp 命令复制文件是如果有覆盖可能的话如何去除确认步骤,如:将/mnt/text.txt 复制 到/temp/text.txt,去除覆盖确认命令.方法:1.加全路径的cp命令,/bin/cp /mnt/text.txt /temp/text.txt.2.在命令前增加\,\cp /mnt/text.txt /temp/text.txt总结,其实cp命令就是/bin/cp -i 命令的别名,linux中为命令起一下别名用alias命令 ,删除别名用unalias,最好

linux学习日记1

端午在家蹲着! 1.man 1指查询linux指令 2指linux api 3指C库函数 2.path 路径 pathname 全路径 name文件名 3.在rm  cp等等加-f的意义在于返回值不同 4.cat 直接在cl下显示文件内容,也可以用来向文件输入 5.ln linux中有两种连接文件 一种叫软连接(符号链接),效果等同于windows中的快捷方式 一种叫硬连接 创建软连接 ln -s  源文件名 连接文件名 文件类型l开头 创建硬连接 ln 源文件名  连接文件名  硬连接实际上和