gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:06:53 25 4
gpt4 key购买 nike

我正在将其他供应商的产品与我们现有的流程集成。

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

很简单,但我们希望将尽可能多的内容迁移到 WCF。我还没有太多使用 WCF,但据我所知,它是 ASP.NET Web 服务(以及其他东西)的替代品。

鉴于我无法修改供应商的产品,我使用 WCF 编写此新 Web 服务的唯一方法是,如果 WCF 服务可以像 ASP.NET Web 服务一样被使用(即,只要就供应商的产品而言,它正在使用 ASP.NET Web 服务)。

WCF服务可以这样使用吗?

最佳答案

是的,网络服务就是网络服务。一般来说,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 与 ASPNET)将导致能够成功调用 ASMX 服务的应用程序无法使用“转换后的”WCF 服务。

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

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

祝你好运。

关于asp.net - WCF 服务可以像 ASP.NET Web 服务一样使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4502142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com