Протокол 'net.tcp' не поддерживается - PullRequest
3 голосов
/ 26 октября 2010

Когда я пытаюсь просмотреть файл service.svc, я получаю эту ошибку.

  1. Я включил tcp на веб-сайте по умолчанию в IIS.
  2. Номер порта808: * уже есть в моих привязках IIS
  3. Я установил WAS и поддержку протоколов, отличных от http ...
  4. Служба TcpChannellistener и службы общего доступа к портам tcp работают.*

    Но теперь, почему я не могу просматривать сайт?Появляется сообщение «Протокол« net.tcp »не поддерживается».

    Вот мой код ...

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.ServiceModel;
    using System.ServiceModel.Activation;
    using System.ServiceModel.Web;
    using System.Web.Services.Description;
    using System.ServiceModel.Description;
    using System.ServiceModel.Channels;
    using System.IO;
    
    namespace WcfService7
    {
        public class clsMyOwnServiceHost:ServiceHostFactory
        {
    
                   protected override ServiceHost CreateServiceHost( Type t, Uri[] baseAddresses )
                   {
    
                       NetTcpBinding tcpbinding = new NetTcpBinding(SecurityMode.None);
                       BasicHttpBinding basicbinding = new BasicHttpBinding(BasicHttpSecurityMode.None);
                       WSHttpBinding wsbinding = new WSHttpBinding(SecurityMode.None);
    
                       baseAddresses = new Uri[] { new Uri("http://localhost/WcfService7/Service1.svc"),new Uri("net.tcp://localhost/WcfService7/Service1.svc/tcp") };
                       ServiceHost host = new ServiceHost(t, baseAddresses);
                       baseAddresses.ToList().ForEach(uri =>
                        {
    
    
                            //ServiceMetadataBehavior metabehavior = new ServiceMetadataBehavior();
    
                            //metabehavior.HttpGetEnabled = true;
                          //  host.Description.Behaviors.Add(metabehavior);
                            if (uri.AbsoluteUri.Contains("http://")) host.AddServiceEndpoint(typeof(IService1), basicbinding, "basic");
                          if(uri.AbsoluteUri.Contains("net.tcp://"))  host.AddServiceEndpoint(typeof(IService1),tcpbinding,"tcp");
                           if(uri.AbsoluteUri.Contains("http://")) host.AddServiceEndpoint(typeof(IService1), wsbinding, "ws");
                           if (uri.AbsoluteUri.Contains("http://")) host.AddServiceEndpoint(typeof(IService1), MetadataExchangeBindings.CreateMexHttpBinding(), "mex");
    
    
    
                        });
    
                       return host;
                   }
    
        }
    }
    

    Пожалуйста, помогите мне ...

    Спасибостолько

1 Ответ

2 голосов
/ 26 октября 2010

Вам нужно добавить порт для TCP для вашего URI.HTTP имеет порт по умолчанию, а TCP - нет.

UPDATE

net.tcp не установлен в IIS по умолчанию.Убедитесь, что он установлен, перейдя на страницу добавления / удаления функций и отметив, что установлен флажок TCP.

Существует 1001 настройка, которая должна быть правильной.Вам необходимо иметь пул приложений, который запускает 4.0, поэтому, если вы не создали отдельный пул приложений, сделайте это и установите для него значение 4.0, и позвольте приложению работать в этом.

Перейти к дополнительным свойствам дляна сайте и по включенным протоколам введите "http, tcp".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...