无法从jQuery调用WCF服务

时间:2012-02-03 14:56:05

标签: wcf jquery

你有十几个帖子介绍了如何从jQuery调用WCF方法,我无法使它工作。我有简单的WCF服务应用程序

[ServiceContract]
public interface IService1
{

    [OperationContract]
    [WebInvoke(Method = "GET", BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
    string GetData(int value);

 }

这是实施

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Service1 : IService1
{

    public string GetData(int value)
    {
        return string.Format("You entered: {0}", value);
    }
}

这是我服务的web.config

<system.serviceModel>
<behaviors>
  <endpointBehaviors>
    <behavior name="TestWebApp.Service1AspNetAjaxBehavior">
      <enableWebScript />
    </behavior>
  </endpointBehaviors>
  <serviceBehaviors>
    <behavior name="TestWebApp.Service1AspNetAjaxBehavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true"/>
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
  multipleSiteBindingsEnabled="true" />
<services>
  <service name="jQueryToWCF.Service1">
    <endpoint address="" 
              behaviorConfiguration="TestWebApp.Service1AspNetAjaxBehavior"
              binding="webHttpBinding" 
              contract="jQueryToWCF.IService1" />
  </service>
</services>

现在我试图从jQuery(来自html页面)

调用它
$(document).ready(function () {
        var param = "{value: 'Hello World!'}";
        $.ajax({
            type: "GET",
            url: "http://localhost:5555/Service1.svc/GetData",
            data: param,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (result) {
                alert(result.d);
            }
        });
    });

但是甚至没有电话给服务。我由Fiddler检查了一下。但是当我把网址放到浏览器中时,我可以得到回复。任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我一直在苦苦挣扎这一段时间。

最终让我感动的页面就是这个:http://forums.asp.net/t/1765610.aspx/1

同时:这是一个应该有效的功能项目文件。您可能需要将javascript中的url替换为正确的端口#。

http://submissiv.com/share/playground.wcf.service.zip