近日学习WCF,找了很多资料,终于找到了Artech这个不错的系列。希望能从中有所收获。

本文用于记录在学习和实践WCF过程中遇到的各种基础问题以及解决方法,以供日后回顾翻阅。可能这些问题都很基础,可是对于新手来说,在没有经验的情况下有时候很难找到解决办法。反正这些问题是真的困扰了我一些时间的。若能为其他新手所用,也是我的荣幸。

博文系列地址:《我的WCF之旅》博文系列汇总

我的WCF之旅(1):创建一个简单的WCF程序

1. 照葫芦画瓢的把第一个简单的WCF程序做出来运行之后(设置Hosting项目作为启动项),在执行到“host.Open();”处遇到如下错误

HTTP 无法注册 URL http://+:3721/calculatorservice/。进程不具有此命名空间的访问权限(有关详细信息,请参见 http://go.microsoft.com/fwlink/?LinkId=70353)。”

因为之前看过其他文章时有所提及,大概猜到如何解决:使用管理员身份运行Visual Studio即可。至于原因,没有深究。

 

2. WCF Service Configuration Editor添加Service的时候怎么选择Service Type?

本来是比较喜欢用手敲的,但是第一次见这个Tool,想玩一下,结果新建Service的时候懵了,要选Service Type!

还记得使用代码实现配置里面有这么一段吗?ServiceHost host = new ServiceHost(typeof(CalculatorService))

没错,Service Type就是我们自定义的服务的实现类型,不过是要指定完全限定名称,如示例中的Artech.WcfServices.Services.CalculatorService,应用到配置文件中即为Service元素的name属性,即<service name="Artech.WcfServices.Services.CalculatorService">

选完之后还没完,又要选Contract Type of Endpoint,跟上面一样的方法,在代码中可以看出,不再赘述。

接下来还有其他各种选择和设置,配置完后,我决定再也不用这个Tool了,简直是浪费时间和精力,好痛苦,哈哈,还是老老实实手敲吧。

 

3. 如何添加服务引用?运行Hosting.exe报错?

在步骤五(创建客户端调用服务)中提到:在运行服务寄宿程序(Hosting.exe)的情况下,右键点击Client项目,在弹出的上下文菜单中选择“添加服务引用(Add Service References)”。

请注意此处说的运行Hosting.exe,所以不是Debug模式哦,Debug模式下是无法对项目进行添加服务引用操作的。正确的做法是到Hosting项目所在物理路径的Bin/Debug或者Bin/Release文件夹找到编译之后生成的Hosting.exe, 并使用管理员身份运行(特别提示:不使用管理员身份运行会报错哦)。

 

4. IIS寄宿之后通过URL访问报错:HTTP 错误 500.19 - Internal Server Error

配置错误 :由于权限不足而无法读取配置文件

解决办法:给虚拟目录添加IIS_IUSRS的权限

 

5. IIS寄宿后通过URL访问报错

找不到类型“WcfServices.Services.CalculatorService”,它在 ServiceHost 指令中提供为 Service 特性值,或在配置元素 system.serviceModel/serviceHostingEnvironment/serviceActivations 中提供。

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.InvalidOperationException: 找不到类型“WcfServices.Services.CalculatorService”,它在 ServiceHost 指令中提供为 Service 特性值,或在配置元素 system.serviceModel/serviceHostingEnvironment/serviceActivations 中提供。

解决方法:把Services.dll和Contracts.dll从Bin/Debug|Release目录拷贝到Bin目录,或者在项目Build选项中把Output path设置改为Bin\再重新编译。这个老师在文章里有提到,但是没有说明会报的错误是什么,如果不小心疏忽掉,从这个错误消息中不太容易判断是什么造成的。

 

其他大大小小的问题,还有一些忘记记录。至此,花了不少时间做这个练习,总算把它完成了。看来路还很长啊。

 

TT

[WCF学习笔记] 我的WCF之旅(1):创建一个简单的WCF程序的更多相关文章

  1. [转载]我的WCF之旅(1):创建一个简单的WCF程序

    为了使读者对基于WCF的编程模型有一个直观的映像,我将带领读者一步一步地创建一个完整的WCF应用.本应用功能虽然简单,但它涵盖了一个完整WCF应用的基本结构.对那些对WCF不是很了解的读者来说,这个例 ...

  2. 我的WCF之旅(1):创建一个简单的WCF程序

    为了使读者对基于WCF的编程模型有一个直观的映像,我将带领读者一步一步地创建一个完整的WCF应用.本应用功能虽然简单,但它涵盖了一个完整WCF应用的基本结构.对那些对WCF不是很了解的读者来说,这个例 ...

  3. WCF入门, 到创建一个简单的WCF应用程序

    什么是WCF?  WCF, 英文全称(windows Communication Foundation) , 即为windows通讯平台. windows想到这里大家都知道了 , WCF也正是由微软公 ...

  4. WCF服务二:创建一个简单的WCF服务程序

    在本例中,我们将实现一个简单的计算服务,提供基本的加.减.乘.除运算,通过客户端和服务端运行在同一台机器上的不同进程实现. 一.新建WCF服务 1.新建一个空白解决方案,解决方案名称为"WC ...

  5. 创建一个简单的WCF程序2——手动开启/关闭WCF服务与动态调用WCF地址

    一.创建WCF服务器 1.创建WCF服务器的窗体应用程序 打开VS2010,选择文件→新建→项目菜单项,在打开的新建项目对话框中,依次选择Visual C#→Windows→Windows窗体应用程序 ...

  6. 创建一个简单的WCF程序

    1.创建WCF服务库 打开VS2010,选择文件→新建→项目菜单项,在打开的新建项目对话框中,依次选择Visual C#→WCF→WCF服务库,然后输入项目名称(Name),存放位置(Location ...

  7. [shiro学习笔记]第二节 shiro与web融合实现一个简单的授权认证

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/39933993 shiro官网:http://shiro.apache.org/ shi ...

  8. opengl学习笔记(五):组合变换,绘制一个简单的太阳系

    创建太阳系模型 描述的程序绘制一个简单的太阳系,其中有一颗行星和一颗太阳,用同一个函数绘制.需要使用glRotate*()函数让这颗行星绕太阳旋转,并且绕自身的轴旋转.还需要使用glTranslate ...

  9. WCF学习笔记之事务编程

    WCF学习笔记之事务编程 一:WCF事务设置 事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元: WCF通过System.ServiceModel.TransactionFlowA ...

随机推荐

  1. 文本(TextView)

    今天给大家介绍一下简单的文本. 首先我们看下TextView的继承关系和一些基本的属性: xml文件如下: <?xml version="1.0" encoding=&quo ...

  2. [转]Linux芯片级移植与底层驱动(基于3.7.4内核)

      1.   SoC Linux底层驱动的组成和现状 为了让Linux在一个全新的ARM SoC上运行,需要提供大量的底层支撑,如定时器节拍.中断控制器.SMP启动.CPU hotplug以及底层的G ...

  3. es6常见特性

    Parameters(参数) in ES6 Template Literals (模板文本)in ES6 Multi-line Strings (多行字符串)in ES6 Destructuring  ...

  4. 通信与实际用例应用(消息队列和进程撰写的ATM机与消息队列的五子棋对站)

    int semget(key_t key, int nsems, int semflg); 功能:创建信号量或获取信号量 nsems:信号量的数量 semflg: IPC_CREAT|IPC_EXEC ...

  5. listview的pushBackDefaultItem中的item属性被修改问题

    time:2015/05/04 1. 描述 在cocostudio中有两个控件,一个listview,另外一个是隐藏的imageview,其中后者作为listview的元素.每次使用的时候把Image ...

  6. Java实例---简单的个人管理系统

    代码分析 FileOperate.java package com.ftl.testperson; import java.io.File ; import java.io.FileInputStre ...

  7. Java Web项目部署

    打包 使用Eclipse打包JAVA Web项目 如下 在项目上单击右键选择Export-选择JavaEE文件夹-选择WAR file(MyEclipse),单击Next>如图所示,选择存放打包 ...

  8. 沉淀,再出发:百度地图api的使用浅思

    沉淀,再出发:百度地图api的使用浅思 一.前言   百度地图想必大家都使用过,但是看到别人使用百度地图的API时候是不是一头雾水呢,其实真正明白了其中的意义就像是调用豆瓣电影api的接口一样的简单, ...

  9. UpdatePanel中用后台CS代码调用JS代码,先执行控件事件,后触发JS

    引用地址: http://www.cnblogs.com/silenkee/articles/1609831.html   页面中加入了UpdatePanel后,Response.Write(&quo ...

  10. myeclipse 2013破解注册图文教程

    以下这个试过有效 http://www.33lc.com/article/10792.html