设为首页 收藏本站
查看: 1496|回复: 0

[经验分享] WCF服务发布和调用IIS服务

[复制链接]

尚未签到

发表于 2015-8-12 13:47:31 | 显示全部楼层 |阅读模式
  最近就要面试了,就把前一段时间学习过的wcf服务又拿出来复习了一边。本来还以为很Easy的东西,谁知道等到真正要做的时候才知道原来有这么多知识要学习!
  先来说,把wcf基本服务完成的过程,我是在园子里看着蒋金楠老师的博客一点点做起来的。因为之前做过一次的原因,所以说这次做的时候也没有太用心,随随便便的把代码一抄就万事大吉了。可是把代码写完之后,发现调试不成系统提示如下:
  


DSC0000.jpg
  当时,也没有想到是程序哪里出问题了,总以为程序照抄的就应该没有问题,可是后来实在是找不到出错的原因,然后上网百度之后才发现,
  原来在服务契约定义的时候没有加上这句话
  [ServiceContract(Name = "CalculatorService", Namespace = "http://www.insigmaedu.com/")]

   这一点有做一点更正:这一点确实要加【servicecontract】不过不是必须要加(name 和namespace)。这一点谢谢
str.chan      
  你的第一个错误只是 ICalculator没有声明ServiceContract属性头,而不是有没有指明Name的情况,事实上,指明name只会让你的抽象层跟实现层 变成藕合状态了,不值得推荐,试想,两个项目要针对ICalculator有2个不同的实现,那么你的name不是要改成2个不同的实现类?
  
  
  
DSC0001.jpg
  
  
  当时只是一味的抄,也没有注意到它有什么作用,后来转到定义,看了一下
  // 摘要:
        //     获取或设置 Web 服务描述语言 (WSDL) 中的 <portType> 元素的名称。
        //
        // 返回结果:
        //     默认值为应用了 System.ServiceModel.ServiceContractAttribute 的类或接口的名称。
        //
  这些其实大家不用管,只要记得把name赋值给实现接口的类就行了,后边的命名空间因该是不使用也没关系(如果你的程序仅仅使用于调试)具体的我也没有深入研究!!
  接下来,就是关于IIS的发布了,这可是折麽死我了!!原来老师讲的时候没有好好听讲,现在发愁了。后来还是一点点的试出来的,首先我在建了一个文件夹,里面有一个BIN文件夹,svc文件,web.config三个文件!其中bin文件夹中要使用服务契约的的DLL(接口),和服务契约实现的DLL(接口的实现),svc文件中只有一句话:
  <%@ ServiceHost Language="C#" Debug="true" Service="Services.CalculatorService" %>
  这句话中只有service=“”这句话有用。service.calculatorservice是服务契约实现的命名空间.实现类!
  接下来就是关于web.config的处理了!对于初学者,使用VS中配套的工具编写是非常方便的。首先打开VS->工具—>WCF服务配置编辑器,点击新建配置文件,服务,新建服务
  
  
DSC0002.jpg
  
  
  浏览有服务实现的DLL选中,然后下一步,让后一直下一步就行了。不过有一点要注意,就是在填写终结点地址的时候把输入框清空就行了!
  接下来,就是配置服务了,在高级中点击服务行为 点击添加选择
DSC0003.jpg
DSC0004.jpg
  
  
  
  点击servicemetadata,作如下设置
  
DSC0005.jpg
  
  最后把终结点设置如下
  
DSC0006.jpg
  
  把服务添加上点击服务
  
DSC0007.jpg
  
  最后就是保存就行了!最后最重要的就是,因为系统默认的文件名是app.config。但是在这里一定要改名为web.config,因为我们是要用IIS发布的,而不是应用程序了。这一点很重要,刚开始就是因为这一点,让我耽误了不少时间。最后就是用IIs发布了。
  打开IIs之后,将文件夹设为默认网站,点击svc文件浏览,就得到已下结果!
  
DSC0008.jpg
  把这个超链接“?”之前的都复制下来!然后就是客户端的调用了
  在客户端的“引用中左键添加服务引用如下图
DSC0009.jpg
  
  
  然后,点击确定就行了!!
  这时候,在debug中运行客户端应用程序,是不是就可以运行了。这样根本就不用运行服务端,不过其实也是运行了的,只要你不关机服务器就运行着!!神奇吧!!
  哈哈,写了半天,终于写完了。因为本人是新人,其中有一些地方写的不对,或者有缺陷,都请园子里的朋友们多多指正!接下来把源码附上!!
  接下来是发布iis的文件夹
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-97995-1-1.html 上篇帖子: 打卡IIS的快捷键 下篇帖子: 移除IIS默认的响应头
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表