2016-12-19 4 views
0

Привет Я разрабатываю небольшое приложение с использованием WCF, MVC4 и angularJS. Я ссылаюсь следующий адресНевозможно использовать службу WCF в приложении mvc5 при попытке получить дополнительную ссылку на службу

https://code.msdn.microsoft.com/AngularJS-Shopping-Cart-8d4dde90#content

Когда я пытался добавить ссылку на службу в моем приложении MVC я получаю ниже ошибки

Metadata publishing for this service is currently disabled. 

я дал ниже URL для доступа к услуге.

http://localhost:55835/Service1.svc 

Когда я попытался, я получаю ошибку. Я не могу добавить ссылку на службу в своем приложении. Я немного беспокоюсь о файле web.config. Это мой файл web.config.

<system.web> 
    <compilation debug="true" targetFramework="4.5.2" /> 
    <httpRuntime targetFramework="4.5.2" /> 
    <httpModules> 
     <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" /> 
    </httpModules> 
    </system.web> 
    <system.serviceModel> 
    <behaviors> 
     <endpointBehaviors> 
     <behavior> 
      <webHttp helpEnabled="True"/> 
     </behavior> 
     </endpointBehaviors> 
    </behaviors> 
    <protocolMapping> 
     <add binding="webHttpBinding" scheme="http" /> 
    </protocolMapping> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel> 

Может ли кто-нибудь сказать мне что-то, что мне не хватает в файле конфигурации?

Заранее спасибо.

+0

Добавить ' поведения' в ваш файл конфигурации. – jsanalytics

ответ

0

Эта проблема отображается, потому что вы не включаете метаданные. Требуется метаданные (документ wsdl для вашего служебного кода), потому что ваш клиент будет генерировать прокси-класс на основе ваших метаданных (код wsdl). Если вы не включите свои метаданные, ваш клиент никогда не узнает, как реализовать такой же код в его прокси-классах. И это можно включить с помощью тега servicemetata под тегом servicebehavior, установив httpGetEnabled в true.

Добавьте эту строку коды под servicebehavior тега сразу после </endpointBehaviors> тега. (Пожалуйста, не включает в себя <behaviour> тега снова)

<behaviors> 
     <serviceBehaviors> 
     <behavior> 
      <!-- To avoid disclosing metadata information, set the values below to false before deployment --> 

      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" httpGetUrl="true"/> 

     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
Смежные вопросы