2017-02-03 12 views
0

Короче говоря, когда я использую ту же конфигурацию в IIS я могу увидеть это:WCF прошла в службе Windows с wsHttpBindngs указует на неправильное место

enter image description here

и когда я иду в Service1 я могу видеть 'wsdl'.

Теперь, когда я перестану IIS и начать свою службу Windows с той же конфигурации:

<system.serviceModel> 
    <services> 
     <service name="WcfService1.Service1"> 
      <host> 
       <baseAddresses> 
        <add baseAddress="https://localhost:443/WcfService1"/> 
       </baseAddresses> 
      </host> 
      <endpoint address="" 
           binding="basicHttpBinding" 
           contract="WcfService1.IService1" 
           bindingConfiguration="basicHttpBindingConfiguration"/> 

      <endpoint address="ws" 
           binding="wsHttpBinding" 
           contract="WcfService1.IService1" 
           bindingConfiguration="wsHttpBindingConfiguration" 
       behaviorConfiguration="wsBehaviorConfig"/> 

      <endpoint address="mex" 
           binding="mexHttpsBinding" 
           contract="IMetadataExchange" /> 
     </service> 
    </services> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="basicHttpBindingConfiguration"> 
       <security mode="Transport"> 
        <transport clientCredentialType="None" proxyCredentialType="None" /> 
       </security> 
      </binding> 
     </basicHttpBinding> 
     <wsHttpBinding> 
      <binding name="wsHttpBindingConfiguration"> 
       <security mode="Transport"> 
        <transport clientCredentialType="None" /> 
       </security> 
      </binding> 
     </wsHttpBinding> 
    </bindings> 
    <protocolMapping> 
     <add binding="basicHttpsBinding" scheme="https" /> 
    </protocolMapping> 
    <client /> 
    <behaviors> 
     <endpointBehaviors> 
      <behavior name="wsBehaviorConfig"> 
       <!-- <wsdlExtensions location="https://localhost:443/WcfService1/Service1.svc" singleFile="true" /> --> 
      </behavior> 
     </endpointBehaviors> 
     <serviceBehaviors> 
      <behavior> 
       <!-- 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="true" /> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 

Когда я обновить веб-страницу в https://localhost/WcfService1 я вижу информацию WSDL: enter image description here

В результате я не может разговаривать с сервисом. Я не понимаю, что я могу делать неправильно. Любые предложения?

ответ

0

В первом случае вы испытываете поведение по умолчанию для запуска проекта на основе шаблона «Приложение WCF Service Application». Вам предоставляется содержимое папки проекта по указанному адресу.

Во втором случае вы с описанием «как использовать страницу службы», потому что у вас есть GET страница включена

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

Если вы хотите, чтобы потреблять ваше обслуживание, то вам нужно «добавить ссылку на службу» из ваше клиентское приложение или создать прокси вручную.

+0

И это нужно сделать в приложении, которое вызывает мой сервис? Если это так, я не могу этого сделать, поскольку у меня нет доступа к коду. – Jakubee

+0

@Jakubee, как только вы создадите свои службы, вы должны протестировать его с помощью WcfTestClient или (и) с другим приложением, добавив ссылку на службу. С этим вы можете проверить и получить уверенность в том, что ваша служба работает должным образом. – recineshto

+0

@Jakubee, подробное описание на ** MSDN ** для [тестового клиента WCF] (https://msdn.microsoft.com/en-us/library/bb552364 (v = vs.110) .aspx) Самый короткий возможный способ использования - найти ** Developer Command Prompt для VS2015 ** и запустить его, а затем добавить ссылку на службу (File/Add Service ...), ввести адрес в вашу службу, и если все будет правильно, вы будете представленный вызываемому интерфейсу к методам вашего сервиса – recineshto