我应该去WCF或ASMX网络服务

时间:2012-10-06 06:42:26

标签: asp.net .net wcf web-services asmx

我的网站目前在 ASP.NET 1.1

中工作

旧流程

在我们的数据库中,我们存储了大量数据用于解码目的。我们必须每周更新这一大量数据表(数据来自供应商)。

在我们的网站(在asp.net 1.1中),我们查询我们的数据库以解码信息。

新流程

现在我们不是将数据存储在我们的数据库中并查询它们,而是希望通过Web服务替换它, AS现在供应商正在向我们提供DLL,它将为我们提供已解码的信息

有关供应商提供的DLL的信息

提供的DLL只能添加到4.0个站点中。那也实现了我无法直接将dll添加到我的1.1站点。 这个DLL暴露了某些方法,我们只需在我们的Web服务中添加DLL引用并调用该方法并获取所需的信息。

因此,我们不必将这些信息存储在我们的数据库中。

那么我应该使用哪种类型的Web服务(asmx或WCF)来使用供应商提供的DLL来获取解码信息?

我在网络服务中寻找的灵活性是:

  • 可以直接从 asp.net 1.1网站使用,也可以使用jQuery ajax
  • 可以从服务器上运行的其他Web服务中使用它。
  • 可以从从服务器运行的某些Windows服务中使用它。

注意此外,我们计划将我们的网站从asp.net 1.1迁移到4.0版本。所以它应该对未来的升级有很大的支持。

4 个答案:

答案 0 :(得分:4)

如果我理解正确,您打算创建一个Web服务,该服务将引用供应商提供的DLL并将解码后的数据返回到您的ASP.NET 1.1网站。

我认真建议您选择WCF Web服务,因为它面向.NET 4.0 Framework。相信我,从长远来看它会得到回报。此外,根据MSDN,.asmx Web服务被认为是传统技术(随时咨询MSDN)。 继续使用WCF,不要以缺点开始!

答案 1 :(得分:0)

如果您想暂时使用asp.net 1.1,asmx服务是您的唯一选择。进一步建议使用asmx服务 - 它依次使用ajax并兼容不同的平台(事实上,它是一个soap服务),并且你可以获得良好的互操作性。

此外,我在这里有点困惑。如果您有服务提供商提供的DLL,您可能根本没有选择。它将决定使用哪个服务与提供者数据源进行通信。您的提供商是否可以选择?

答案 2 :(得分:0)

WCf比以前使用的旧式肥皂更加灵活,以前是ajax, 现在wcf是更加面向服务的架构。所以不再使用webservice

答案 3 :(得分:0)

由于WCF通过SOAP协议进行通信,我建议您最好的选择是创建一个单独的.Net 4.0 Web服务项目(如果您愿意,可以在同一个解决方案中),然后您的.Net 1.1网站可以引用该项目。

您也可以“重新装饰”新的WCF方法,将其作为ASMX Web服务公开,以便与网站向后兼容,并减少分阶段迁移的停机时间,请参阅this post.或者,再多一点如果您希望立即在客户端中切换服务调用,Microsoft会提供exposing WCF to an ASMX client指南。我能看到的最简单的方法是简单地将现有的asmx服务代码复制粘贴到.Net4项目中,并替换方法以在适当的情况下使用新的dll see this post

当迁移完成并重构.Net 1.1站点以编译和利用.Net 4的新功能时,该服务可以再次移动到主网站项目中(如果您愿意),但我个人更喜欢保留它们分开。

迁移到WCF和.Net 4应该带来许多好处,微软已经添加了simple ways to improve your program分配,WCF分配更灵活,可以被更广泛的客户端使用({{3} })我发现现在越来越难以找到对传统技术的支持。

HTH