关注将Web服务(asmx)转换为WCF

时间:2011-02-01 17:14:11

标签: wcf asmx

我有一些与Web服务(.asmx)转换为WCF相关的基本问题。我们有一个运行网站,使用大量的Web服务。这些Web服务使用具有业务逻辑的通用DLL。我们计划将Web服务转换为WCF。由于有许多Web服务,我们计划一次转换一个。首先,将有一个WCF和许多Web服务(asmx)驻留在生产服务器上。我对如何使网站运行有一些困惑--WCF和ASMX都驻留在一个地方。如果有人能回答我的疑问,我将不胜感激:

  1. 我可以为.asmx网络服务和WCF服务共享相同的web.config文件吗?如果是,那么我需要做些什么来确保两者同时工作。添加ServiceModel标记对于现有的web.config是否足够?

  2. 我可以使用web.config存储一些可以在两个服务之间共享的配置参数--WCF和.asmx吗?怎么称呼它?

  3. 目前,常见的dll(业务层)正在使用HTTPContext.Current来缓存一些值。如何确保代码适用于WCF和.asmx调用?转换代码的最佳方法是:

    xslt = (XslCompiledTransform)HttpContext.Current.Cache[fileName];
    string XslFilePath = HttpContext.Current.Server.MapPath(@"~/xsl/" + fileName);
    

    什么是WCF等价物?

  4. 最后,如何在生产服务器中部署WCF更改?我只需要复制服务dll和.svc文件吗?

  5. 我知道,我有很多问题,这些对你们来说可能看起来很简单,但我很难弄明白。

1 个答案:

答案 0 :(得分:2)

  

1)我可以为.asmx web服务和.as共享同一个web.config文件   WCF服务?

是的,绝对 - WCF配置位于<system.serviceModel>部分(主要是),所以这根本不是问题。

  

2)我可以使用web.config存储一些配置参数   可以在两个服务之间共享 - WCF和.asmx?

如果您创建自己的自定义配置部分或部分组 - 是的,请确定。 ASMX Web服务以及您的WCF代码都可以读取该自定义配置部分 - 这是所有标准的.NET内容,实际上(参见:How to: Create Custom Configuration Sections Using ConfigurationSection

  

3)目前,常见的dll(业务层)正在使用   HTTPContext.Current缓存一些值。

您可以在WCF服务上启用ASP.NET兼容性模式,并且这样做,a)永久地将自己绑定到IIS,并且b)可以访问所有常见的HTTP上下文和类似的东西。有关详细信息,请参阅:WCF Services and ASP.NET

  

4)最后,如何在生产服务器中部署我的WCF更改?我   只需要复制服务dll和.svc文件?

复制服务DLL,SVC文件,进行配置更改 - 就是这样!