Member 11589429 Ответов: 0

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


Я создаю свой первый REST api. Я перешел по ссылке ниже. http://www.codeproject.com/Articles/105273/Create-RESTful-WCF-Service-API-Step-By-Step-Guide.Ссылка отличная.
Шаги 1: Я создал новое приложение проекта WCFservice. Удален уже созданный интерфейс и класс. Добавлен в него новый сервис. Имя проекта - RestService, имя сервиса - IRestServiceImpl. Работает хорошо при доступе через браузер. Но когда я пытаюсь использовать это через клиентское / веб-приложение, я получаю сообщение об ошибке. Я не вижу ни одной конечной точки в клиентском файле webconfig. Когда я добавляю ссылку на службу, отображается 2 найденные ссылки. Как 2? Итак, я снова удалил и ввел новую ссылку на службу, в этот раз я снял флажок «повторно используемый тип в ссылочных сборках», но безуспешно. Что делать теперь? Шаг 4: здесь написано, потому что в поле ниже не помещается весь код шага 4


& lt;конфигурация>

< appsettings>
&ЛТ;добавить ключ="Паш:UseTaskFriendlySynchronizationContext" значение="истинный"и GT;

&ЛТ;система.веб&ГТ;
&ЛТ;компиляция отладка="истинный" targetframework="4.5"и GT;
< httpruntime targetframework= "4.5">

& lt;system. servicemodel>
< Услуги>
< имя службы= " RestService.RestServiceImpl "behaviorconfiguration=" ServiceBehaviour " >
в <адрес конечной точки="" привязки="привязку webhttpbinding" договора="RestService.IRestServiceImpl "behaviorconfiguration= "web">


< поведение>
& lt;сервисное поведение>
< имя поведения= "ServiceBehaviour">
<!-- Чтобы избежать раскрытия информации о метаданных, установите приведенные ниже значения в false перед развертыванием -->
<servicemetadata httpgetenabled= "true" httpsgetenabled= "true">
<!-- Чтобы получить сведения об исключениях в ошибках для целей отладки, установите значение ниже в true. Установите значение false перед развертыванием, чтобы избежать раскрытия информации об исключениях -->
& lt;servicedebug includeexceptiondetailinfaults= "false">


<endpointbehaviors>
< имя поведения= "web">
< webhttp>



& lt;protocolmapping>
&ЛТ;добавление привязки="basicHttpsBinding" схема="протокол HTTPS"и GT;

<servicehostingenvironment aspnetcompatibilityenabled= "true" multiplesitebindingsenabled= "true">

< system. webserver>
& lt;модули runallmanagedmodulesforallrequests= "true">
<!--
Для просмотра корневого каталога веб-приложения во время отладки, установите параметру значение true.
Установите значение false перед развертыванием, чтобы избежать раскрытия информации о папке веб-приложения.
-->
<directorybrowse enabled= "true">




Что я уже пробовал:

step 2: Interface

namespace RestService
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IRestServiceImpl" in both code and config file together.
    [ServiceContract]
    public interface IRestServiceImpl
    {
        [OperationContract]
        [WebInvoke(Method="GET",ResponseFormat=WebMessageFormat.Xml,BodyStyle=WebMessageBodyStyle.Wrapped,UriTemplate="xml/{id}") ]
        string XmlData(string id);

        [OperationContract]
        [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "json/{id}")]
        string JSONData(string id);
    }
}
step 3: Class Implementing Interface
namespace RestService
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "RestServiceImpl" in code, svc and config file together.
    // NOTE: In order to launch WCF Test Client for testing this service, please select RestServiceImpl.svc or RestServiceImpl.svc.cs at the Solution Explorer and start debugging.
    public class RestServiceImpl : IRestServiceImpl
    {
      public  string XmlData(string id)
        {
            return "Your id is " + id;
        }

      public string JSONData(string id)
      { 
          return "Your id is " + id;
      }
    }
}
Step 4 : Webconfig
<?xml version="1.0"?>
<configuration>

  <sappSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5"/>
  </system.web>
  <system.serviceModel>
    <services>
      <service name="RestService.RestServiceImpl" behaviorConfiguration="ServiceBehaviour">
        <endpoint address="" binding="webHttpBinding" contract="RestService.IRestServiceImpl" behaviorConfiguration="web"></endpoint>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="ServiceBehaviour">
          <!-- To avoid disclosing metadata information, set the values below to false before deployment -->
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="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>
      <endpointBehaviors>
        <behavior name="web">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <protocolMapping>
        <add binding="basicHttpsBinding" scheme="https" />
    </protocolMapping>    
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <!--
        To browse web app root directory during debugging, set the value below to true.
        Set to false before deployment to avoid disclosing web app folder information.
      -->
    <directoryBrowse enabled="true"/>
  </system.webServer>

</configuration>

0 Ответов