1

我有一个 WCF 服务。我有一个只能读取.asmx 文件的外部软件。是否可以在相应的 .asmx 中转换我的 .svc 文件

4

5 回答 5

2

“只读取 .asmx 文件的软件”没有意义。没有软件读取 .asmx 文件或 .svc 文件 - 这两种类型都在服务器上进行解释,并且永远不会返回给客户端。

我认为您需要更深入地了解这个外部软件真正想要什么。如果它关心 URL 中的文件类型,那将完全是脑死亡!

于 2009-02-17T18:19:26.630 回答
2

我认为从 wcf 转换为 asmx 并不是很直接,因为您基本上会回到技术上。我想最简单的选择是编写一个 asmx webservice,它公开与 wcf 服务相同的方法并充当 wcf 服务的代理。

这样,您的外部软件可以调用 asmx 服务,而且任何新的东西都可以使用 wcf 服务。这样,您可以将逻辑保存在一个地方,但两者都可以从更新等中受益。

希望这可以帮助。

于 2009-02-16T11:24:09.727 回答
2

为什么要转换,保留 wcf(.svc) 和 Web 服务 (.asmx) 只需按照步骤操作即可。

  1. 转到您的 WCF 项目,右键单击并添加新项目并选择 Web 服务 (.asmx) 文件并展开该新文件并删除内部文件并保留 .asmx 文件。
  2. 打开那个 .asmx 文件,你会发现 <%@ WebService Language="C#" Debug="true" Class="{full name of web service class}" %>

将其替换为

<%@ WebService Language="C#" Debug="true" Class="full name of wcf class(.cs file not interface)" %>
  1. 最后一步在接口上添加服务合同、Web 服务和 Web 服务绑定属性,如下所述

    [ServiceContract(Namespace = "namespacename")] [WebService(Name = "wcf class name")] [WebServiceBinding(Name = "wcf class name", ConformsTo = WsiProfiles.BasicProfile1_1, EmitConformanceClaims = true)]

并在界面的每个方法声明上添加 web 方法属性。

就是这样,现在您可以公开文件 .asmx 文件用于 Web 服务客户端 .svc 用于 WCF 客户端

谢谢你

于 2014-12-18T06:13:17.950 回答
1

如果服务很小,那也不是很难。

可以用 WCF 和 ASMX 属性来装饰一个类。然后在 ASMX 文件和 WCF 文件中引用该类。

于 2010-08-29T10:45:17.693 回答
1

我猜外部软件实际上是在读取由 asmx 文件生成的 WSDL,并且不支持公开的协议。一定要检查这个软件有什么级别的 SOAP 支持,并相应地调整你的 wcf 服务。

于 2009-07-02T02:21:50.623 回答