Я успешно использовал службу WCF, используя jQuery, перейдя по этой ссылке: http://www.codeproject.com/KB/aspnet/WCF_JQUERY_ASMX.aspx
Я только что внес несколько изменений в мои объекты POCO для правильной сериализации. Все работает нормально, если используется jQuery или при просмотре с помощью браузера (изменил глагол, чтобы получить).
Теперь я создал приложение для Windows и добавил ссылку на сервис к этому сервису. Это успешно завершается, и я могу видеть классы / методы и все. Однако, когда я пытаюсь запустить приложение, я получаю следующую ошибку:
"Не удалось найти элемент конечной точки по умолчанию, который ссылается на контракт [ContractName] в разделе конфигурации клиента ServiceModel. Это может быть связано с тем, что для вашего приложения не найден файл конфигурации или из-за того, что в клиенте не найден элемент конечной точки, соответствующий этому контракту элемент ".
Исходя из этой ошибки, я думаю, мне следует создать другую конечную точку для обслуживания приложений, не относящихся к http? Хотя я не совсем уверен, как это работает ..
Вот мой webconfig
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="EntityDataModelContainer" connectionString="metadata=res://*/EntityDataModel.csdl|res://*/EntityDataModel.ssdl|res://*/EntityDataModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=bdowrmg01;Initial Catalog=ORMU_Prototype;user=sa;password=Password1;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="ORMDefaultServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="ORMDefaultServiceBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="ORMDefaultServiceBehavior"
name="ORM.Business.KCSA">
<endpoint address="" binding="webHttpBinding"
contract="ORM.Business.IKCSA"
behaviorConfiguration="ORMDefaultServiceBehavior"/>
</service>
</services>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
</configuration>
Также вот контракт:
[ServiceContract]
public interface IKCSA
{
[OperationContract]
[ApplyDataContractResolver]
[WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped,Method="GET",ResponseFormat=WebMessageFormat.Json)]
JsonResponse<IEnumerable<KCSATopic>> GetTopics();
}