我有一个WCF服务。我有一个外部软件只能读取 .asmx文件。是否可以在相应的.asmx 中转换我的.svc文件?
答案 0 :(得分:2)
我认为从wcf到asmx的转换不是很直接,因为你基本上可以追溯到技术。我想最简单的选择是编写一个asmx webservice,它公开与wcf服务相同的方法,并充当wcf服务的代理。
这样您的外部软件就可以调用asmx服务,但是任何新的服务都可以使用wcf服务。通过这种方式,您可以将逻辑保留在一个位置,但两者都可以从更新等中受益。
希望这有帮助。
答案 1 :(得分:2)
“仅读取.asmx文件的软件”没有意义。没有软件可以读取.asmx文件或.svc文件 - 这两种类型都在服务器上解释,永远不会返回给客户端。
我认为你需要更深入地了解这个外部软件真正想要的东西。如果它关心URL中的文件类型,那将完全是脑死亡!
答案 2 :(得分:2)
为什么转换,同时保留wcf(.svc)以及Web服务(.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)" %>
最后一步在界面上添加服务合同,Web服务和Web服务绑定属性,如下所述
[ServiceContract(Namespace =&#34; namespacename&#34;)] [WebService(Name =&#34; wcf class name&#34;)] [WebServiceBinding(Name =&#34; wcf class name&#34;,ConformsTo = WsiProfiles.BasicProfile1_1,EmitConformanceClaims = true)]
并在界面的每个方法声明中添加web方法属性。
它,现在你可以暴露给文件了 用于Web服务客户端的.asmx文件 .svc for WCF客户端
谢谢
答案 3 :(得分:1)
我猜测外部软件实际上正在读取asmx文件生成的WSDL,并且不支持公开的协议。绝对检查这个软件支持的SOAP级别,并相应地调整你的wcf服务。
答案 4 :(得分:1)
如果服务很小,那就不是很难了。
可以使用WCF和ASMX属性来装饰类。然后在ASMX文件和WCF文件中引用该类。