Минимальная конфигурация для RESTful WCF - PullRequest
6 голосов
/ 26 сентября 2008

Какой минимальный минимум мне нужно поместить в web.config, чтобы WCF работал с REST? Я аннотировал свои методы с помощью [WebGet], но они не получают сообщение.

Ответы [ 3 ]

6 голосов
/ 26 сентября 2008

Я обнаружил, что вы можете добавить следующее к директиве ServiceHost в файле * .svc, и она автоматически настроит для вас WebHttpBinding и WebHttpBehavior:

Factory="System.ServiceModel.Activation.WebServiceHostFactory"

Обратите внимание, что пространство имен немного отличается от того, что упоминается в Интернете (например, в этой статье MSDN ).

После этого я смог удалить весь раздел из web.config, и все по-прежнему работало!

2 голосов
/ 26 сентября 2008

Убедитесь, что вы используете webHttpBinding на своей конечной точке (а не httpBinding или wsHttpBinding). Вот моя конфигурация конечной точки ...

    <endpoint address="" binding="webHttpBinding" bindingConfiguration=""
      contract="WcfCore.ICustomer">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
1 голос
/ 26 сентября 2008

Вы должны убедиться, что у вас есть адрес для хоста службы, например,

<services>
      <service name="SomeLib.SomeService">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8080/somebase"/>
          </baseAddresses>
        </host>
<!-- And one EndPoint **basicHttpBinding** WILL WORK !!! -->

        <endpoint 
                   address="basic"
                   binding="basicHttpBinding"
                   contract="SomeLib.SomeContract"/>
</service>
</services>

Итак, теперь, если вы используете хостинг через консольное приложение, например, для ... вы можете вызвать хост через:

WebChannelFactory<IServiceContract> factory =
        new WebChannelFactory<IServiceContract>(
            new Uri("http://localhost:8080/somebase"));

Когда консольное приложение запускается, адрес будет доступен для просмотра, даже если он размещен самостоятельно, и вы сможете вызывать свои действия на основе шаблонов URI веб-приложения.

Этот минимальный конфиг позволит вам вызывать WCF RestFULLY через самохостинг. Если вы размещаете хостинг в IIS, он, по сути, будет работать аналогично, за исключением того, что файл svc заменяет наш пользовательский хост.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...