Одна служба WCF REST с несколькими режимами поведения - PullRequest
1 голос
/ 11 мая 2011

Можно ли создать службу WCF REST 4.0, которая имеет две конечные точки с различным поведением?В частности, я ищу одну конечную точку для использования transferMode=Streamed, а другую для использования Buffered.

Я начал использовать приложение службы WCF REST, которое, похоже, представляет собой смесь WCF иТехнологии маршрутизации ASP MVC.Я могу установить TransferMode для обеих конечных точек в system.serviceModel/standardEndpoints/webHttpEndpoint/standardEndpoint, но не испытываю никакой радости от применения дополнительных к моим маршрутам.

Я не совсем понимаю, где существует разделение WCF / MVC, например, существует ли Global.asax считается как одна конечная точка WCF или являются ли маршруты отдельными конечными точками, и в результате не уверен, как продвигаться.

  • Есть ли простое изменение или атрибут Web.config, которые я могу применить к услугеуказать другое поведение?
  • Если нет, могу ли я создать отдельные файлы asax, используя разные поведения вместо одного Global.asax файла?
  • Если нет, я должен создать файлы .svc для сопоставления с моимклассы, как в обычном приложении WCF?
  • Если нет, придется ли мне создавать второй проект для определения другого поведения?

Ответы [ 2 ]

2 голосов
/ 11 мая 2011

Каждый сервисный маршрут создает новый ServiceHost. Кроме того, REST Starter Kit теперь устарел, либо вы должны использовать обычный WCF REST 4.0, либо вы должны изучить новый материал WCF Web API на http://wcf.codeplex.com

1 голос
/ 12 мая 2011

Как насчет этого:

<services>
  <service name="YourNamespace.YourServiceClass">
    <endpoint address="stream" kind="webHttpEndpoint" endpointConfiguration="webHttpStreamed" contract="YouServiceContract" />
    <endpoint address="buff" kind="webHttpEndpoint" endpointConfiguration="webHttpBuffered" contract="YouServiceContract" />
  </service>
</services>

<standardEndpoints>
  <webHttpEndpoint>
    <standardEndpoint name="webHttpStreamed" transferMode="Streamed" />
    <standardEndpoint name="webHttpBuffered" transferMode="Buffered" />
  </webHttpEndpoint>
</standardEndpoints>

Конечно, адреса двух конечных точек не должны перекрываться.

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