项目结构图如下:

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

接口内部如下:

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. 微信小程序开发之tab导航栏

    实现功能: 点击不同的tab导航,筛选数据 UI:   js: data:{ navbar: ['半月维保', '季度维保', '半年维保',"年度维保"],    //count ...

  2. Flask中的后端并发思考(以Mysql:too many connections为例)

    之前写过一篇<CentOS 下部署Nginx+Gunicorn+Supervisor部署Flask项目>,最近对该工程的功能进行了完善,基本的功能单元测试也做了. 觉得也是时候进行一下压力 ...

  3. Vue实现一个MarkDown编辑器

    Vue实现一个markdown编辑器 前段时间做项目的时候,需要一个Markdown编辑器,在网上找了一些开源的实现,但是都不满足需求 说实话,这些开源项目也很难满足需求公司项目的需求,与其实现一个大 ...

  4. 从RAID看垂直伸缩到水平伸缩的演化

    磁盘的读写过程,最消耗时间的地方就是在磁盘中磁道寻址的过程,而一旦寻址完成,写入数据的速度很快. 连续写入:写入只寻址一次 存储位置与逻辑位置相邻 不用多次寻址 随机写入:每写一次 便寻址一次 增加了 ...

  5. 洛谷P2868 [USACO07DEC]观光奶牛Sightseeing Cows

    P2868 [USACO07DEC]观光奶牛Sightseeing Cows 题目描述 Farmer John has decided to reward his cows for their har ...

  6. uoj#280. 【UTR #2】题目难度提升(构造)

    传送门 咱先膜一下\(GXZ\)再说 我们先把序列从小到大排序,然后分情况讨论 无解是不存在的,从小到大输出所有数肯定可行 情况一,如果\(a[mid]=a[mid+1]\),因为最终的中位数也是它们 ...

  7. oracle 查看 job 日志

    select * from user_scheduler_job_log select * from user_scheduler_job_run_details select *  from use ...

  8. Glassfish 设置时区

    对于Glassfish domain 或者instance下,某个日志的时区不对,前提是系统时区争取. 可以尝试通过如下命令查看jvm 时区设置 asadmin list-jvm-options 如果 ...

  9. Cookie认证

    Cookie认证 由于HTTP协议是无状态的,但对于认证来说,必然要通过一种机制来保存用户状态,而最常用,也最简单的就是Cookie了,它由浏览器自动保存并在发送请求时自动附加到请求头中.尽管在现代W ...

  10. Core 事件总

    NET Core 事件总线,分布式事务解决方案:CAP 背景 相信前面几篇关于微服务的文章也介绍了那么多了,在构建微服务的过程中确实需要这么一个东西,即便不是在构建微服务,那么在构建分布式应用的过程中 ...