2010-08-30 3 views
0

У меня есть WebService, с которым я пытаюсь использовать NetTCPBinding.Ошибка сертификата WCF NetTcpBinding

вот мой код для настройки связывания

private static void Run() 
    { 
     try 
     { 

      //set up the address configuration procedure: create a URI to serve as the base address 

      Uri baseAddress = new Uri("net.tcp://10.0.0.14:3790/Service/QBService"); 
      ServiceHost selfHost = new ServiceHost(typeof(QBService), baseAddress); 

      try 
      { 

       NetTcpBinding myBinding = new NetTcpBinding(); 
       myBinding.Security.Mode = SecurityMode.Transport; 
       myBinding.Security.Transport.ClientCredentialType = TcpClientCredentialType.None; 

       myBinding.MaxReceivedMessageSize = 50000000; 
       myBinding.MaxBufferPoolSize = 50000000; 



       selfHost.AddServiceEndpoint(
        typeof(IQBService), 
        myBinding, 
        "QBService"); 



       ServiceMetadataBehavior smb = new ServiceMetadataBehavior(); 
       smb.HttpGetEnabled = true; 
       selfHost.Description.Behaviors.Add(smb); 
       selfHost.Open(); 

       Console.WriteLine("The service is ready"); 

       bool terminate = false; 
       //wait to read line as long as entertext is not equal to end 
       while (!terminate) 
       { 
        string entertext = Console.ReadLine(); 
        if (entertext.Equals("end")) 
         terminate = true; 
        else 
         Console.WriteLine("\n Unknown Command \n"); 

       } 



       selfHost.Close(); 

      } 
      catch (CommunicationException ce) 
      { 

       Console.WriteLine(ce.Message, ce); 
       selfHost.Abort(); 
      } 

     } 
     } 

Когда я запустить службу я получаю эту ошибку

"The service certificate is not provided. Specify a service certificate in serivcecredentials" 

Должен ли я использовать сертификат с этим обязательным? или есть другой способ? Спасибо!

ответ

1

Вы указали, что Security.Mode = SecurityMode.Transport. Если вы не хотите использовать сертификаты, укажите вместо этого Security.Mode = SecurityMode.None, чтобы указать отсутствие безопасности.

+0

поэтому с транспортом я должен использовать сертификат? Нам нужна какая-то безопасность, хотя есть другой вариант или я должен просто сделать сертификат? Спасибо. – twal

+0

Единственный способ правильно настроить безопасный веб-сервис - использовать сертификаты. – Bernard

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