2012-03-13 4 views
0

Я создал простой веб-сервис. Затем я создал хост консоль, которая должна провести обслуживание через HTTPS URL ..wcf почему я не вижу мой сайт https

Это мой конфиг:

 <?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.serviceModel> 
     <services> 
      <service behaviorConfiguration="mexBehaviour" name="NuriServiceLibrary.NuriService"> 
       <clear /> 
       <endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicHttpBindingConfig" 
        contract="NuriServiceLibrary.iNuriService" listenUriMode="Explicit" /> 
       <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 
       <host> 
        <baseAddresses> 
         <add baseAddress="https://192.168.....:8001/SecureConsole" /> 
        </baseAddresses> 
       </host> 
      </service> 
     </services> 
     <behaviors> 
     <serviceBehaviors> 
      <behavior name="mexBehaviour"> 
      <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" /> 
      </behavior> 
     </serviceBehaviors> 
     </behaviors> 

     <bindings> 
     <basicHttpBinding> 
      <binding name="basicHttpBindingConfig"> 
      <security mode="Transport"> 
       <transport clientCredentialType="None" /> 
      </security> 
      </binding> 
     </basicHttpBinding> 
     </bindings> 
    </system.serviceModel> 
</configuration> 

и это мой Program.cs:

static void Main(string[] args) 
     { 
      ServiceHost host = new ServiceHost(typeof(NuriService)); 
      host.Open(); 
      foreach (Uri address in host.BaseAddresses) 
      { 
       Console.WriteLine("Listening on " + address); 
      } 
      Console.WriteLine("Press <Enter> to terminate Host.\n\n"); 
      Console.ReadLine(); 

      host.Close(); 
     } 

I создали сертификат: 1. makecert.exe -sr LocalMachine -ss My -n CN = 192.168 ..... -sky exchange -sk -pe 2. netsh http add sslcert ipport = 192.168 ....: 8001 certhash = (намеренно оставлено) appid = {(намеренно оставлено)}

Но проблема в том, что я не вижу свою веб-страницу https ... Я вижу, что этот сайт недоступен .. У кого-нибудь есть идея?

+0

Какой URL вы используете для доступа к метаданным службы? –

+0

нет, я добавил ip с портом: 9000, но тогда сайт также не будет отображаться. – skyyyy

+0

Где вы «* добавили *» IP-адрес с портом 9000? Кроме того, когда вы говорите «* веб-сайт *», вы имеете в виду страницу помощи WCF? –

ответ

1

Попробуйте добавить атрибут к <serviceMetadata>HttpsGetUrl и указать пустой строки:

<serviceBehaviors> 
    <behavior name="mexBehaviour"> 
     <serviceMetadata httpGetEnabled="false" 
          httpsGetEnabled="true" 
          httpsGetUrl="" /> 
    </behavior> 
</serviceBehaviors> 

Это сделает метаданные услуг доступны через сервис-base address:

https://localhost:8001/SecureConsole?wsdl 
+0

не работает. Веб-страница еще не отображается :( – skyyyy

+0

Какая HTTP-ошибка у вас есть? 404? 500? –

+0

111 (net :: ERR_TUNNEL_CONNECTION_FAILED): Неизвестная ошибка – skyyyy

0

По вашей реализации вы может ожидать только увидеть метаданные, опубликованные вашей службой, путем обращения к вашему базовому адресу в веб-браузере. Прежде чем вы попытаетесь сделать это, стоит запустить службу в debugegr в визуальных студиях (не запускайте хост, просто запустите службу/lib). Если это выполняется без ошибок, THEN попробуйте обратиться к службе в браузере.

Если то, что вы действительно хотите, чтобы разместить свой сервис и и использовать веб-браузер в качестве клиента, то вы должны смотреть в ASP.net

Смежные вопросы