我有这种情况。客户要求我们拥有WebService。我创建了一个WCF服务。在我们将他们的网址发送到网络服务描述后,客户说
因为它是我们不能消耗WCF 服务,你能发布一个网络吗? 服务?
现在我想知道,他们问我asmx ......对吗? 有什么方法可以“提供”我的WCF服务作为asmx服务,所以我不必重写整个事情?
我的第一个“解决方案”是让.asmx文件直接调用我的.svc文件...我不知道。我没有尝试,但我正朝着这个方向前进。
任何想法都将受到高度赞赏。
贝
答案 0 :(得分:0)
完全可行。只需使用使用basicHttpBinding或wsHttpBinding公开服务的端点。 URL的“文件扩展名”对客户端没有任何影响,只对rerquest / response的内容有所影响。
以下是对另一个SO问题的引用: REST / SOAP endpoints for a WCF service
答案 1 :(得分:0)
非常有可能。遵循下面提到的步骤,您将能够将WCF服务公开为ASMX端点。
我将WCF类名称作为Service1(来自基本WCF服务),此类存在于当前的NameSpace中。所以我将类名更改为mynamespace.Service1
一些更改是代码,如下所示 -
在Tag中的web.config中添加以下代码
<system.web>
<webServices>
<conformanceWarnings>
<remove name='BasicProfile1_1'/>
</conformanceWarnings>
</webServices>
</system.web>
在界面上添加以下2个属性(在WCF的 servicecontract 上)
[WebService(Name = "Service1")]
[WebServiceBinding(Name = "Service1", ConformsTo = WsiProfiles.BasicProfile1_1, EmitConformanceClaims = true)]
在每个操作合同上添加[WebMethod]属性。
[OperationContract]
[WebMethod]
string GetData(int value);
您的服务现在也可以被asmx客户端使用。