我是ASP.NET新手。最近一直在试图解决它。这是我的问题。
Web服务项(可以在Visual Studio中添加到项目中的.asmx),它只会生成XML 服务(生成XML输出)? JSON怎么样?
当我向项目添加Web引用时,系统会提示您指定URL,那么必须提供哪种服务?例如,当我输入http://search.twitter.com/search.json?q=twitter时 - 它不起作用(没有任何内容被提取)。
创建.asmx服务后,如何通过PHP或JavaScript等非.NET技术消耗这些服务?
如果我要用另一种技术(PHP / ColdFusion)创建一个Web服务,那么我可以轻松地将一个Web引用添加到.NET项目中以供使用吗?
什么时候放弃创建Web服务(.asmx)并创建通用处理程序(.ashx)?什么是最佳做法?
答案 0 :(得分:2)
答案在这里提供:http://forums.asp.net/p/1762729/4808974.aspx/1?p=True&t=634636052163539362
1.当您将web引用(.asmx)添加到项目中时,它将生成三种不同类型的扩展文件,它们是reference.cs,.disco和.wsdl。并且Web服务名称和值(如下所示)将添加到项目配置文件中,Reference.cs是实际生成的代理类,主要用于在客户端调用Web服务。
例如:
<applicationSettings>
<WebApplication3.Properties.Settings>
<setting name="WebApplication3_localhost_WebService2" serializeAs="String">
<value>http://localhost:8776/WebService2.asmx</value>
</setting>
</WebApplication3.Properties.Settings>
</applicationSettings>
对于JSON,它是一种轻量级的数据交换格式,完全独立于语言。它是一组名称/值对和一个有序的值列表,我们通常使用Jquery来调用JSON Web服务和REST服务,并将其contentType设置为“application / json; charset = utf-8”,将dataType设置为“json” ”
2.通常可以使用添加web引用将ASMX Web服务(.asmx文件)添加到消费者项目中,我们最好添加以.asmx结尾的Web服务的URL,类似这样。 http://localhost:8776/WebService2.asmx
3.您可以通过多种方式从非网络技术中调用.net Web服务,您可以向Web服务发送请求肥皂消息,有关此内容的更多信息,请查看此文章。还有一些开发工具提供的选项可以添加wsdl引用作为VS工具,只有你指定了WSDL URL,为此,请查看本文。
4.如果您可以在IE浏览器中浏览Web服务,那么您可以在Web服务URL的末尾添加“?wsdl”,然后在VS工具中,您可以添加Web引用到该wsdl url,然后您可以使用该Web服务,请查看此文章。
5.对于Generic Handler(.ashx),它主要用于以下场景 (1)运用安全机制, (2)URL重写, (3)过滤发送到IIS的请求中的内容。 这取决于您要求选择Web服务或.ashx的要求。
答案 1 :(得分:1)
1)有关让json asmx服务正常工作的语法,请查看this post
5)新的方法是WCF
答案 2 :(得分:1)
关于问题4,我得到consume ProcessMaker Web services from ASP.Net。 ProcessMaker是一个开源工作流解决方案,它通过使用PHP开发的SOAP Web服务提供集成。