我有一个非常简单的hello world WCF服务,如下所示.当我通过添加Web服务引用通过asp.net项目调用它时,它工作得很好.但是当我使用jQuery或标准js ajax调用(使用XMLHttpRequest
)调用它时,它会调用success函数但返回null数据.
当我尝试使用此地址通过firefox浏览器访问它时: http://localhost:8282/Test/TestService.svc/HelloWorld
它返回错误,代码为"a:ActionNotSupported",错误详情为
由于EndpointDispatcher上的ContractFilter不匹配,无法在接收方处理带有Action''的消息.这可能是由于合同不匹配(发送方与接收方之间的操作不匹配)或发送方与接收方之间的绑定/安全性不匹配.检查发送方和接收方是否具有相同的合同和相同的绑定(包括安全要求,例如消息,传输,无).
如果我更改绑定,wsHttpBinding
那么即使在Firefox中也没有返回任何内容.
这是代码:
文件"Test/ITestService.svc":
[ServiceContract(Namespace = "http://localhost:8282/")] public interface ITestService { [OperationContract] string HelloWorld(); }
文件"Test/TestService.svc":
public class TestService : ITestService { public string HelloWorld() { return "This is echo from server. Hello World"; } }
文件"web.config"
Adeem.. 5
使用上面的代码服务只允许soap请求,以便允许获取http请求,我们必须修改代码,如下所示:
[WebGet(UriTemplate="helloworld")] [OperationContract] string HelloWorld();
添加行为配置:
然后在行为中添加以下标记:
"请从上面删除多余的空格.它没有显示标签没有额外的空格"
查看一些资源:
使用WCF的RESTful服务简介http://msdn.microsoft.com/en-us/magazine/dd315413.aspx
Endpoint.TV截屏:
使用WCF构建RESTful服务(第1部分) http://channel9.msdn.com/shows/Endpoint/endpointtv-Screencast-Building-RESTful-Services-with-WCF/
使用WCF构建RESTful服务(第2部分)http://channel9.msdn.com/shows/Endpoint/endpointtv-Screencast-Building-RESTful-Services-with-WCF-Part-2/
在WCF中调用RESTful服务http://channel9.msdn.com/shows/Endpoint/endpointtv-Screencast-Calling-RESTful-Services-in-WCF/
对于WCF和WCF REST来说,Endpoint.TV一般都有很好的覆盖范围.http://channel9.msdn.com/shows/Endpoint/
使用上面的代码服务只允许soap请求,以便允许获取http请求,我们必须修改代码,如下所示:
[WebGet(UriTemplate="helloworld")] [OperationContract] string HelloWorld();
添加行为配置:
然后在行为中添加以下标记:
"请从上面删除多余的空格.它没有显示标签没有额外的空格"
查看一些资源:
使用WCF的RESTful服务简介http://msdn.microsoft.com/en-us/magazine/dd315413.aspx
Endpoint.TV截屏:
使用WCF构建RESTful服务(第1部分) http://channel9.msdn.com/shows/Endpoint/endpointtv-Screencast-Building-RESTful-Services-with-WCF/
使用WCF构建RESTful服务(第2部分)http://channel9.msdn.com/shows/Endpoint/endpointtv-Screencast-Building-RESTful-Services-with-WCF-Part-2/
在WCF中调用RESTful服务http://channel9.msdn.com/shows/Endpoint/endpointtv-Screencast-Calling-RESTful-Services-in-WCF/
对于WCF和WCF REST来说,Endpoint.TV一般都有很好的覆盖范围.http://channel9.msdn.com/shows/Endpoint/