WCF REST WebInvoke UriTemplate & https Issue - PullRequest
4 голосов
/ 26 октября 2011

Моя служба WCF работает с атрибутами WebInvoke и использует httpGetEnabled.

[OperationContract]
[WebInvoke(Method="POST", UriTemplate = "/Function1")]
void Function1(Stream input);

[OperationContract]
[WebInvoke(Method="POST", UriTemplate = "/Function2")]
void Function2( Stream input );

Когда я пытаюсь заставить его работать с https, я не могу получить доступ к UriTemplates.Однако я могу получить доступ к svc и wsdl.

<services>
  <service behaviorConfiguration="SslBehavior" name="MyService">
    <endpoint address="" binding="webHttpBinding" contract="IMyService" behaviorConfiguration="WebBehavior" />
  </service>
</services>

<behaviors>
  <serviceBehaviors>
    <behavior name="SslBehavior">
      <serviceMetadata httpsGetEnabled="True" />
      <serviceDebug includeExceptionDetailInFaults="True"/>
    </behavior>
  </serviceBehaviors>

  <endpointBehaviors>
    <behavior name="WebBehavior">
      <webHttp />
    </behavior>
  </endpointBehaviors>
</behaviors>

Эта служба размещена в IIS 7. Есть ли что-то очевидное, что я пропускаю?Я пробовал как можно больше комбинаций конфигурации.Когда я пытаюсь опубликовать одну из ссылок WebInvoke, я получаю сообщение об ошибке 404.

Другая компания будет публиковать эту услугу, поэтому она должна быть RESTfull

Редактировать

Я попробовал это в узле привязок:

  <webHttpBinding>
    <binding name="SslBinding" transferMode="Streamed">
      <security mode="None">
        <transport clientCredentialType="None" />
      </security>
    </binding>
  </webHttpBinding>

И установил BindingConfiguration на конечной точке.Та же проблема: (

1 Ответ

3 голосов
/ 26 октября 2011

Попробуйте установить режим безопасности на Транспорт:

<bindings>
  <webHttpBinding>
    <binding name="SslBinding" transferMode="Streamed">
      <security mode="Transport">  
        <transport clientCredentialType="None" />     
    </security>     
  </binding>   
</webHttpBinding>
...