请问有人能发现这个实现存在的问题吗?我可以在浏览器中打开它并且可以正常工作,但是从客户端调用(使用jquery和asp.net ajax)失败了。
服务契约
[OperationContract(Name = "GetTestString")]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json
)]
string GetTestString();
在Web.config文件中,除了其他绑定之外,我还有一个webHttp绑定。
<endpoint address="ajax" binding="webHttpBinding" contract="TestService" behaviorConfiguration="AjaxBehavior" />
端点行为
<endpointBehaviors>
<behavior name="AjaxBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
</behaviors>
Svc文件
<%@ ServiceHost Service="TestService" %>
客户端
var serviceUrl = "http://127.0.0.1/Test.svc/ajax/";
var proxy = new ServiceProxy(serviceUrl);
我正在使用http://www.west-wind.com/weblog/posts/324917.aspx中的方法来调用该服务。
GET
、POST
、PUT
和DELETE
。POST
和PUT
通常用于写入信息,因此在这方面,您提供的示例有些不寻常 - 一个名为GetStockQuote
的方法似乎不太适合作为POST
实现 - 但这是服务作者的选择 :-) 值得注意的是,您可以使用任何方法返回结果(如果您愿意,您可以使用 HttpDELETE
返回信息!)- 只是这并不一定是个好主意! - Dan Puzey