Служба WCF Json GET: убедитесь, что адреса конечной точки отправителя и получателя совпадают.

Я уже некоторое время работаю в .NET, но я новичок в WCF. Я пытаюсь создать свой самый первый сервис WCF с использованием JSON. Я думал, что начну очень, очень просто, а затем буду строить дальше. Но мне каким-то образом удалось испортить даже самый простой из сервисов. Вот что у меня есть до сих пор.

Web.Config:

   <?xml version="1.0"?>
<configuration>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <services>
      <service name="MarathonInfo.MarathonInfoService">
        <endpoint address="http://localhost:10298/MarathonInfoService.svc" binding="webHttpBinding" contract="MarathonInfo.IMarathonInfo" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="false" />
  </system.serviceModel>
 <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

</configuration>

Затем в служебном файле:

namespace MarathonInfo
{
    public class MarathonInfoService : IMarathonInfo
    {
        public String GetData()
        {
            return "Hello World";
        }
    }
}

И в интерфейсе:

namespace MarathonInfo
{
    [ServiceContract]
    public interface IMarathonInfo
    {

        [OperationContract]
        [WebInvoke(Method = "GET", UriTemplate = "/GetData", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        String GetData();
    }
}

Итак, когда я иду по этому адресу:

http://localhost:10298/MarathonInfoService.svc/GetData

Я получаю эту ошибку:

Сообщение с То «http://localhost:10298/MarathonInfoService.svc/GetData» не может быть обрабатывается в получателе из-за несоответствия AddressFilter в Диспетчер конечных точек. Убедитесь, что отправитель и получатель Адреса конечных точек совпадают.

Я могу нормально запустить службу через Visual Studio в режиме отладки. Но в браузере я получаю только эту ошибку.

Что я делаю не так?

Спасибо!

Кейси

6
задан user1418704 26 May 2012 в 07:07
поделиться