asmx和wcf之间的共享代码

问题描述:

我有wcf服务。还有一些我们的客户使用delphi7来消费我们的服务。 Delphi7不能说明wcf(即使是basicHttpBinding),所以我必须创建我的wcf web服务的asm​​x模拟。现在我正在寻找更好的方法在相同的代码库上构建wcf和asmx服务。什么是建立,维护与部份相同的代码(同样的方法,逻辑)asmx和wcf之间的共享代码

感谢安德鲁

+5

带有BasicHttpBinding的WCF等同于asmx。你遇到什么问题?您是否使用正确的网址来访问wsdl? – 2011-03-02 10:40:54

+0

我知道。这是Delphi7问题。 Wsdl的不同 – 2011-03-02 12:00:10

+0

Delphi7应该对使用'basicHttpBinding'的WCF服务没有问题。很难想象什么样的WSDL差异会打破Delphi或任何其他程序。您应该询问关于您的特定服务的具体问题,并且您可能会发现哪些问题。 – 2011-03-08 01:49:55

使用动态链接库(* .dll)来存放共享代码,引用和利用这两个项目。

这种方式,你有合适的平台,这就叫通过共享代码库,其中,在一个地方编辑,并进一步部署时,适用所有呼叫者公开的方法两项服务。

嗨,你可以建立一个集成所有的逻辑,然后从WCF一个BusinessManager或者干脆ASMX你们两个服务的最好方式创建一个实例并调用传递从调用者接收的实际参数的正确方法。

我使用BusinessManager这个词来定义类与您自己的业务逻辑有关,但它只是一个类,无论是静态还是非静态,我通常都不希望这样的类是静态的。

如果您的现有WCF服务已经托管在ASP.NET Web应用程序/站点中,您可以轻松地将普通的旧ASMX webservice添加到您的现有WCF服务。

右键单击您的项目 - >添加 - >新建项目 选择Web - >滚动到底部 - > Web服务。

然后让你的web服务调用你的WCF方法。

+0

我认为这会很慢。我不需要连锁服务。 – 2011-03-02 12:00:31

+0

这不是我的意思,只是实例化xxService类,并立即调用方法不通过“呼叫服务”磨难去。 – 2011-03-02 12:03:15

Delphi 7支持调用COM(ActiveX)对象,不是吗?

为什么不建立一个标记有ComVisible特性.NET客户端为WCF服务,并消耗在Delphi通过COM接口。

这样你就不必同时维护一个ASMX和一个WCF服务。