2013-06-17 5 views
0

Я могу получить доступ к моей службе WCF и получить ее файл WSDL, но не могу получить доступ к «подкаталогу». Полученная ошибка выглядит следующим образом, когда я ввожу URL в адресную строку.WebGet с UriTemplate не создает правильную конечную точку

[14: 42: 45,509] GET http://---.azurewebsites.net/MyService.svc/Ping [HTTP/1.1 400 Bad Request 105ms]

Интерфейс и реализация выглядит следующим образом.

[OperationContract] 
[WebGet(UriTemplate="Ping")] 
String Ping(); 

public String Ping() { return "Pong"; } 

Модель обслуживания в файле конфигурации состоит из следующего раздела.

Поведения

<behaviors> 
    <endpointBehaviors> 
    <behavior name="PingEndPointBehavior"> 
     <webHttp/> 
    </behavior> 
    </endpointBehaviors> 
    <serviceBehaviors> 
    <behavior name ="PingServiceBehavior"> 
     <serviceMetadata httpGetEnabled="true" 
         httpsGetEnabled="true"/> 
    </behavior> 
    <behavior name=""> 
     <serviceMetadata httpGetEnabled="true" 
         httpsGetEnabled="true"/> 
     <serviceDebug includeExceptionDetailInFaults="false"/> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 

Наручники

<bindings> 
    <basicHttpBinding> 
    <binding name="PingBasicHttpBinding"/> 
    </basicHttpBinding> 
</bindings> 

Услуги

<services> 
    <service name="MyNamespace.MyService" 
      behaviorConfiguration="PingServiceBehavior"> 
    <endpoint name="PingEndpoint" 
       behaviorConfiguration="PingEndPointBehavior" 
       address="Ping" 
       bindingConfiguration="PingBasicHttpBinding" 
       contract="MyNamespace.IMyService"/> 
    </service> 
</services> 
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" 
          multipleSiteBindingsEnabled="true"/> 

Что мне не хватает?

+0

Я думаю, вы не можете ввести URL-адрес и получить ответ от своей службы WCF с помощью BasicHttpBinding. Вы должны использовать webHttpBinding для вышеуказанного, чтобы работать – Rajesh

+0

@Rajesh Put - это ответ, поэтому я могу проверить его на зеленый. –

ответ

1

Я думаю, вы не можете ввести URL-адрес и получить ответ от своей службы WCF, используя BasicHttpBinding. Вы должны использовать webHttpBinding для вышеуказанного, чтобы работать

+0

Я исправил ошибку, но я не уверен, разрешил ли я проблему или просто подметал ее под ковром, потому что теперь я понимаю, что конечная точка не найдена. Я разместил здесь [связанный с этим вопрос] (http://stackoverflow.com/questions/17165275/endpoint-not-found-when-accessing-via-url-in-a-browser), но до сих пор никто не придумал даже один комментарий, который меня беспокоит. Не стесняйтесь взломать его. Вероятно, я отдам немного щедрости, потому что это очень важно для меня. :) –

Смежные вопросы