加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

可以像使用ASP.NET Web服务一样使用WCF服务吗?

发布时间:2020-12-16 06:58:08 所属栏目:asp.Net 来源:网络整理
导读:我正在将来自其他供应商的产品与我们现有的流程集成. 该产品通过ASP.NET Web服务与我们的系统连接.在中,我需要编写一个ASP.NET Web服务,它具有供应商指定的特定方法名称和参数. 很简单,但我们希望尽可能多地向WCF迁移.我还没有使用过很多WCF,但是我认为它是A
我正在将来自其他供应商的产品与我们现有的流程集成.

该产品通过ASP.NET Web服务与我们的系统连接.在中,我需要编写一个ASP.NET Web服务,它具有供应商指定的特定方法名称和参数.

很简单,但我们希望尽可能多地向WCF迁移.我还没有使用过很多WCF,但是我认为它是ASP.NET Web Services(以及其他东西)的替代品.

看到我不能修改供应商的产品,我可以使用WCF编写这个新Web服务的唯一方法是,可以像使用WMS服务那样使用ASP.NET Web服务(即,就供应商的产品而言有关,它正在消耗ASP.NET Web服务).

可以通过这种方式使用WCF服务吗?

解决方法

是的,Web服务是Web服务.通常,WCF比ASP.NET更灵活,更强大,但是您可以将有线消息放入和转出WCF服务,使其看起来与ASMX服务的消息完全相同.但是,WCF默认也不同.

迁移应该几乎是机械的.替换包含以下内容的.asmx文件:

<%@ WebService 
    Language="C#" 
    CodeBehind="~/App_Code/CommunicationService.cs" 
    Class="CommunicationService" %>

…包含以下内容的.svc文件:

<%@ ServiceHost 
    Language="C#" 
    CodeBehind="~/App_Code/CommunicationService.cs" 
    Service="CommunicationService" %>

……你差不多完成了.

但是,WCF Web服务的默认设置与ASP.NET Web服务的默认设置不同.特别是,传入和传出消息的XML名称空间可能不同.并非每个人都为其服务和消息指定不同的xml名称空间,但对于那些人来说,迁移将是一个问题.行为差异(WCF-vs-ASPNET)将导致成功能够调用ASMX服务的应用程序无法使用“转换”的WCF服务.

This article详细讨论了该问题,并描述了一个很好的解决方法:使用自定义ServiceHost.

上面文章中的服务主机代码不完整,因为它只能修复请求模式;您可能/可能还需要为响应模式执行类似的操作.

祝好运.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读