Конечная точка не найдена при доступе через URL-адрес в браузере

Когда я ввожу адрес своей службы, я вижу файл WSDL. Однако когда я добавляю суффикс к URL-адресу, я получаю сообщение об ошибке: «конечная точка не найдена». Это определенно из-за того, что что-то не так с моей декларацией модели обслуживания, но через несколько часов я склонен признать, что это вне меня.

Я убедился, что пространства имен верны, как описано здесь.

Первый URL работает. Другой - нет.

http://---.azurewebsites.net/MyService.svc/ < br> http://---.azurewebsites.net/MyService.svc/Ping
http://---.azurewebsites.net/MyService.svc/Ping/ (как предлагается ​​здесь)

В поведении я объявил два поведения - одно для конечной точки, а второе для службы.

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

Я объявил следующую привязку для доступа через строку URL в браузере.

<bindings>
  <webHttpBinding></webHttpBinding>
</bindings>

В services я объявил две конечные точки (я также тестировал только первую).

<service name="MyProject.MyService"
         behaviorConfiguration="PingServiceBehavior">
  <endpoint name="PingEndPoint"
            behaviorConfiguration="PingEndPointBehavior"
            address="Ping"
            binding="webHttpBinding"
            contract="MyProject.IMyService"/>
  <endpoint contract="IMetadataExchange" 
            binding="mexHttpBinding" 
            address="mex" />
</service>

В моем файле конфигурации также есть следующее. Сомневаюсь в его значении, но никто не знает.

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
                           multipleSiteBindingsEnabled="true"/>

person Konrad Viltersten    schedule 18.06.2013    source источник
comment
где вы разместили свою службу WCF? Это на IIS   -  person Rajesh    schedule 18.06.2013
comment
@Rajesh Это лазурь, но, видимо, это не имело значения. Я нашел проблему. Это была проблема с избыточностью?   -  person Konrad Viltersten    schedule 18.06.2013


Ответы (1)


Я решил проблему. Очевидно, виртуальный путь к подкаталогам является накопительным, поэтому предоставленная служба была там все время, но по следующему адресу.

http://---.azurewebsites.net/MyService.svc/Ping/Ping

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

person Konrad Viltersten    schedule 18.06.2013