Попробуйте включить адрес конечной точки в URL службы.Что-то вроде:
$.getJSON("/Service1.svc/json/Foo")
Кроме того, вы должны включить трассировка WCF , чтобы увидеть, какая ошибка возвращается.Вам понадобится Service Trace Viewer для просмотра информации журнала.
ОБНОВЛЕНИЕ:
Ниже приведен пример использования работающего кода.
Файл конфигурации содержит
<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
<services>
<service behaviorConfiguration="jsonServiceBehavior" name="DummyService.Service1">
<endpoint address="soap" binding="basicHttpBinding" contract="DummyService.IService1"/>
<endpoint address="json"
behaviorConfiguration="jsonBehavior"
binding="webHttpBinding" contract="DummyService.IService1"/>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="jsonBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="jsonServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Я создал пустой веб-проект и добавил следующую HTML-страницу для тестирования службы.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="Scripts/jquery-1.6.4.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$.getJSON("/Service1.svc/json/Foo")
.success(function (result) {
alert("success! " + result);
})
.fail(function (result) {
console.log("failed!");
console.log(result);
});
});
</script>
</head>
<body>
</body>
</html>
И мой Service1.svc
имеет следующее:
<%@ ServiceHost Language="C#" Service="DummyService.Service1" %>