将 Web 服务 (asmx) 转换为 WCF 的问题

发布于 2024-10-15 16:19:47 字数 860 浏览 3 评论 0原文

我有一些与将 Web 服务 (.asmx) 转换为 WCF 相关的基本问题。我们有一个正在运行的网站,它使用大量的网络服务。这些 Web 服务使用具有业务逻辑的通用 dll。我们计划将 Web 服务转换为 WCF。由于 Web 服务有很多,我们计划一次转换一项。因此,一开始,生产服务器上将驻留一个 WCF 和许多 Web 服务 (asmx)。我对如何使网站在 WCF 和 ASMX 驻留在一个地方的情况下运行有些困惑。如果有人可以回答我的问题,我将不胜感激:

  1. 我可以为 .asmx Web 服务和 WCF 服务共享相同的 web.config 文件吗?如果是,那么我需要做哪些更改才能确保两者同时工作。在现有的 web.config 中添加 ServiceModel 标记就足够了吗?

  2. 我可以使用 web.config 来存储一些可以在两个服务(WCF 和 .asmx)之间共享的配置参数吗?如何调用它?

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

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

    WCF 的等价物是什么?

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

我知道,我有很多问题,这些对你们来说可能看起来很简单,但我发现很难弄清楚。

I have some basic questions related to the conversion of Web Service (.asmx) into WCF. We have a running website which use tons of Web Services. These web services use a common dll that has the business logic. We are planning to convert the web services into WCF. Since there many web services, we are planning to convert one at a time. So to begin with there will be one WCF and many web services (asmx) residing on the production server. I have some confusion on how to make the website run with both - WCF and ASMX residing at one place. I would appreciate if someone can answer my queries:

  1. Can I share the same web.config file for both .asmx web service and WCF service? If yes, then what all changes do I need do to to make sure both works at the same time. Adding ServiceModel tag is enough to the existing web.config?

  2. Can I use the web.config to store some configuration parameters that can be shared between the two services - WCF and .asmx? How to call it?

  3. Currently, the common dll (business layer) is using HTTPContext.Current to cache some values. How can I make sure that the code works for both WCF and .asmx calls? What is the best way to convert the code similar to:

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

    What is the WCF equivalent?

  4. Finally, how can I deploymy WCF changes in production server? Do I just need to copy the service dll and the .svc file?

I know, I have so many questions, and these may look simple to you guys but I am finding hard to figure them out.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风尘浪孓 2024-10-22 16:19:47

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

是的,绝对 - WCF 配置位于 部分(大部分),因此这根本不是问题。

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

如果您创建自己的自定义配置部分或部分组 - 是的,当然。 ASMX Web 服务和 WCF 代码都可以读取自定义配置部分 - 这实际上是所有标准 .NET 内容(请参阅:如何:使用 ConfigurationSection 创建自定义配置部分)

3) 目前使用的是通用dll(业务层)
HTTPContext.Current 缓存一些值。

您可以在 WCF 服务上打开 ASP.NET 兼容模式,这样做,您 a) 将自己永远绑定到 IIS,b) 可以访问所有常用的 HTTP 上下文和类似内容。有关详细信息,请参阅:WCF 服务和 ASP.NET

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

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

1) Can I share the same web.config file for both .asmx web service and
WCF service?

Yes, absolutely - the WCF config lives in the <system.serviceModel> section (mostly), so that's no an issue at all.

2) Can I use the web.config to store some configuration parameters
that can be shared between the two services - WCF and .asmx?

If you create your own custom configuration section or section group - yes, sure. Both the ASMX web service as well as your WCF code can read that custom config section - that's all standard .NET stuff, really (See: How to: Create Custom Configuration Sections Using ConfigurationSection)

3) Currently, the common dll (business layer) is using
HTTPContext.Current to cache some values.

You can turn on the ASP.NET compabitibility mode on your WCF services, and doing so, you a) tie yourself to IIS forever, and b) get access to all the usual HTTP context and stuff like that. See: WCF Services and ASP.NET for more info.

4) Finally, how can I deploy my WCF changes in production server? Do I
just need to copy the service dll and the .svc file?

Copy the service DLL(s), the SVC file, make the config changes - that's it!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文