2012-03-13 7 views
0

私はシンプルなウェブサービスを作成しました。 そして、私はこれが私のconfigですwcf httpsサイトが表示されないのはなぜですか

.. HTTPSのURLを経由してサービスをホストする必要がありConsoleホストを作成しました:私は

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(); 
     } 

 <?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のです証明書を作成しました: 1. makecert.exe -sr LocalMachine -ss My -n CN = 192.168 ..... -sky exchange -sk -pe 2. netsh http sslcert ipport = 192.168 ....を追加します。 8001 certhash =(意図的に残した)appid = {(意図的に残した)}

問題は、私のhttpsウェブページが表示されません...このウェブサイトが利用できないことがわかります。 誰もが知っていますか?

+0

を検討する必要がある、あなたのサービスをホストし、そしてクライアントとしてWebブラウザを使用することですか? –

+0

なし、ポート:9000でipを追加しましたが、ウェブサイトにも表示されません。 – skyyyy

+0

ポート9000でIPアドレスを「*追加」しましたか?また、「* website *」と言うと、WCFのヘルプページですか? –

答えて

1

てみ空の文字列<serviceMetadata>からHttpsGetUrl属性を追加して指定します。

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

これを介してサービスメタデータが利用できるようになりますが、サービスのbase address:あなたの実装で

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

まだ表示されないWebページが動作しません:( – skyyyy

+0

何かHTTPエラーを取得しますか?404?500? –

+0

111 :: ERR_TUNNEL_CONNECTION_FAILED):不明なエラー – skyyyy

0

ますWebブラウザでベースアドレスを指定することによって、あなたのサービスによって公開されたメタデータを見ることしか期待できません。これを試してこれを行う前に、ビジュアルスタジオのdebugegrでサービスを実行する価値があります(ホストを実行せず、サービス/ libを実行するだけです)。これがエラーなく実行されたら、ブラウザでサービスを試してみてください。

あなたが本当に欲しいものであれば、あなたはサービスメタデータにアクセスするために使用しているどのようなURL ASP.net

関連する問題