项目结构图如下:

新建一个实现内容和接口的项目:

接口内部如下:

using DataModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text; namespace wcfService
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IUserBusiness”。
[ServiceContract]
public interface IUserBusiness
{
[OperationContract]
string DoWork(string name); [OperationContract]
List<Student> GetStudentInfo(string stuName);
}
}

实现代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DataBll;
using DataModel;
using wcfService; namespace WCFServiceCode
{
class UserBusiness : IUserBusiness
{
public string DoWork(string name)
{
return string.Format("hello Word by {0}", name);
} public List<Student> GetStudentInfo(string stuName)
{
SchoolBusinees bussiness = new SchoolBusinees();
return bussiness.GetStudentInfo(stuName);
}
}
}

编写完成后,编译生成DLL文件,然后新建一个WCF的项目

引用这个实现的项目DLL,之后新建一个SVC文件,删除XX.SVC.CS这个文件,打开.SVC文件,在里面的service属性指向实现DLL.类,codebehind的名字要和类名一致例如:

<%@ ServiceHost Language="C#" Debug="true" Service="WCFServiceCode.UserBusiness" CodeBehind="UserBusiness" %>

之后点击发布后放入IIS,直接浏览会出现找不到类型XX

,它在 ServiceHost 指令中提供为 Service 特性值,或在配置元素 system.serviceModel/serviceHostingEnvironment/serviceActivations 中提供。

这个错误至今没有找到真正的解决办法,只能把IIS的WCF项目转换为应用程序后,才可以不能报错:选中项目后右键就可以看到转换为应用程序选项

,之后在如下界面取到地址:

http://desktop-an72kei/WcfTest/UserBusiness.svc?wsdl  
在需要添加引用的项目中按照添加服务引用的方式输入地址之后会添加引用,然后引用服务引用的命名空间,就可以直接调用WCF的方法了:
代码如下:
using MvcDemo.Bussiness;

namespace MvcDemo.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
//ViewData["pagePartialIndex"] = "分页视图";
ViewData["pageIndex"] = "主页视图";
UserBusinessClient bu = new UserBusinessClient();
var res = bu.GetStudentInfo("张三");
return View("Default");
}

至于为什么要分离页面和后台呢,我找不到具体的原因,可能是因为可以更加安全的管理接口避免暴漏的安全隐患吧。

有不足之处还希望大家指教

WCFSVC文件的分离的更多相关文章

  1. Mybatis mapper接口与xml文件路径分离

    为什么分离 对于Maven项目,IntelliJ IDEA默认是不处理src/main/java中的非java文件的,不专门在pom.xml中配置<resources>是会报错的,参考这里 ...

  2. 实现C++模板类头文件和实现文件分离的方法

    如何实现C++模板类头文件和实现文件分离,这个问题和编译器有关. 引用<<C++primer(第四版)>>里的观点:1)标准C++为编译模板代码定义了两种模型:“包含”模型和“ ...

  3. (11/24) css进阶:Less文件的打包和分离

    写在前面:在前面我们对css打包和分离进行了描述.此节我们开始学习如何对less文件进行打包和分离. Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量.Mixin.函数等特性, ...

  4. C++模板类头文件和实现文件分离

    http://www.cnblogs.com/lvdongjie/p/4288373.html 如何实现C++模板类头文件和实现文件分离,这个问题和编译器有关. 引用<<C++primer ...

  5. ionic新手教程第三课-在项目中使用requirejs分离controller文件和server文件

    继上篇教程中提到的,我们新建一个简单的tabs类型的Ionic项目. 依据文件夹文件我们知道,系统自己主动创建了一个controller文件和server文件,而且把全部的控制器和服务都写到这两个文件 ...

  6. Webpack实战(五):轻松读懂Webpack如何分离样式文件

    在上一篇文章中我给大家分享了预处理器(loader),里面讲到了style-loader 和css-loader,有关样式引入的问题,但是上面的样式文件只是引入到style标签里面,并不是我想要的样式 ...

  7. 第二天ci项目规划 前后台分离

    第二天ci项目规划 前后台分离 1/31/2016 2:40:26 PM 前后台 表面上看前后台不同网站 但是数据是他们之间的联系要完成结构完整项目 设计好前后台 基于mvc框架 前后台那些地方不同 ...

  8. 移动混合开发之android文件管理新建文件和删除文件

    今天经过一天超过8小时的实践,有很多CSS上的细节需要注意: 1, /*注意是对before的操作*/ .content ul li .icon-check-empty:before{ display ...

  9. Design5:Sql server 文件组和文件

    1,文件组和文件的作用 Sql Server的数据存储在文件中,文件是实际存储数据的物理实体,文件组是逻辑对象,Sql server通过文件组来管理文件. 一个DataBase有一个或多个FileGr ...

随机推荐

  1. Spring入门第十二课

    Bean的配置方法 通过工厂方法(静态工厂方法&实例工厂方法),FactoryBean 通过调用静态工厂方法创建Bean 调用静态工厂方法创建Bean是将对象创建的过程封装到静态方法中,当客户 ...

  2. girdspec实现画布

    对于简单的画布可以很轻松的使用subplot解决,可是对于一些复杂的画布比如下面的这个 就不易使用subplot解决,这是就需要subplot的扩展版gridspec 构造函数GridSpec(nro ...

  3. C++经典面试算法题

    转自:http://blog.csdn.net/f_r_e_e_x/article/details/50770907 //1.实现strcpy. char* MyStrCpy( char *pDest ...

  4. 利用外部协议让chrome启动外部应用程序

    http://bbs.kafan.cn/thread-1254526-1-1.html 原理:很简单,标题写的很明确了,不懂的google去. 步骤:举个例子,我要启动D:\Programe file ...

  5. 洛谷P2046 [NOI2010]海拔(最小割,平面图转对偶图)

    传送门 不明白为什么大佬们一眼就看出这是最小割…… 所以总而言之这就是一个最小割我也不知道为什么 然后边数太多直接跑会炸,所以要把平面图转对偶图,然后跑一个最短路即可 至于建图……请看代码我实在无能为 ...

  6. Node.js的安装与使用-Windows系统

    首先到官网下载node.js http://nodejs.cn 下载完成后一直下一步Next即可安装完成,路径可以自己设置 然后配置环境变量,将node安装的目录配置到Path中 例如: cmd打开命 ...

  7. 笔记-JavaWeb学习之旅19

    Redis:redis是一款高性能的NOSQL系列的非关系型数据库 NOSQL: Not Only SQL ,意即"不仅仅是SQL",是一项全新的数据库理念,泛指非关系型数据库 r ...

  8. CF920F SUM and REPLACE 线段树

    给你一个数组a_i​,D(x)为x的约数个数 两种操作: 1.将[l,r]的a_i​替换为D(a_i) 2.输出∑​a_i ( l <= i <= r ) 当区间最大值<=2时,就不 ...

  9. Codeforces 140F(坐标系点对称)

    要点 结论:如果坐标系一堆点两两对称于某一重心,则排序后第1个和第n个为一对,以此类推. 枚举所有可能的重心点并check.因为隐藏的点不超过k个,所以点1-k+1都可能跟第n个匹配.对右侧同样适用, ...

  10. BestCoder Round #81 (div.2) 1003 String

    题目地址:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=691&pid=1003题意:找出一个字符串满足至少 ...