Самостоятельное размещение WCF для клиента AJAX

StackOverflow https://stackoverflow.com/questions/1792208

  •  22-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь самостоятельно разместить веб-службу WCF и предоставить конечную точку HTTP с поддержкой ajax.Практически все, что я нашел о WCF и AJAX, связано с IIS, который я не хочу использовать.

Я создал простое консольное приложение для размещения службы.В моем сервисе есть только один метод:

[ServiceContract]
interface IMyService
{
    [OperationContract]
    string TestConnection();
}

А вот код app.config:

<services>
  <service name="Service.MyService" behaviorConfiguration="MyServiceBehavior" >
    <endpoint address="" binding="webHttpBinding" behaviorConfiguration="WebBehavior" contract="Service.IMyService" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>
</services>

<behaviors>
  <endpointBehaviors>
    <behavior name="WebBehavior">
      <enableWebScript/>
    </behavior>
  </endpointBehaviors>
  <serviceBehaviors>
    <behavior name="MyServiceBehavior" >
      <serviceMetadata httpGetEnabled="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>

Я могу получить доступ к конечной точке метаданных службы и просмотреть WSDL, но не могу использовать его из своего ajax-клиента.Итак, мой вопрос:1.Можно ли сделать это?2.Какова необходимая конфигурация, которой мне явно не хватает?

ПРИМЕЧАНИЕ Я не использую файл .svc

Спасибо!

Это было полезно?

Решение

Какой у вас клиент?С помощью EnableWebScript вы получаете поддержку ASP.NET AJAX (например, декорированные члены, типы и все прочее, что из этого вытекает).Если вам нужен «необработанный» JSON, используйте поведение webHttp вместо EnableWebScript и пометьте операции интерфейса с помощью WebInvokeAttribute или WebGetAttribute (установив типы запроса/ответа на JSON или XML по вашему желанию).Также похоже, что вы не присвоили своему интерфейсу атрибут ServiceContractAttribute, который является обязательным.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top