Метаданные WCF содержат ссылку, которая не может быть разрешена

Я потратил пару часов на поиски этой ошибки и протестировал почти все, что она есть в Google.

Я хочу получить доступ к службе с помощью TCP, .NET4 и VS2010 на C #.

У меня очень крошечный сервис:


namespace WcfService_using_callbacks_via_tcp
{
    [ServiceContract(CallbackContract = typeof(ICallback), SessionMode = SessionMode.Required)]
    public interface IService1
    {
        [OperationContract]
        string Test(int value);
    }

    public interface ICallback
    {
        [OperationContract(IsOneWay = true)]
        void ServerToClient(string sms);
    }
    [ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple)]
    public class Service1 : IService1
    {
        public string Test(int value)
        {
            ICallback the_callback = OperationContext.Current.GetCallbackChannel();
            the_callback.ServerToClient("Callback from server, waiting 1s to return value.");
            Thread.Sleep(1000);
            return string.Format("You entered: {0}", value);
        }

    }
}

С этим Web.config:




  
    
  
  
    
      
        
          
            
          
        
        
        
      
    

    
      
      
        

        

        
          
        
      


    

    
      
        
        
          
          
        

        
          
          
          
          
        
      
    
    
  
 
    
  



И этот код для его размещения:


static void Main(string[] args)
{
    Uri base_address = new Uri("net.tcp://localhost:5050/Service1");
    ServiceHost host = null;
    try
    {
        // Create the server
        host = new ServiceHost(typeof(Service1), base_address);
        // Start the server
        host.Open();
        // Notify it
        Console.WriteLine("The service is ready at {0}", base_address);
        // Allow close the server
        Console.WriteLine("Press  to stop the service.");
        Console.ReadLine();
        // Close it
        host.Close();
    }
    catch (Exception ex)
    {
        // Opus an error occurred
        Console.ForegroundColor = ConsoleColor.Red;
        Console.WriteLine(string.Format("Host error:\r\n{0}:\r\n{1}", ex.GetType(), ex.Message));
        Console.ReadLine();
    }finally
    {
        // Correct memory clean
        if(host != null)
            ((IDisposable)host).Dispose();
    }
}

Теперь я хочу создать клиента, но это невозможно. Я напрямую использовал Add Service Reference и svcutil, но получаю эту ошибку:


C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC> svcutil.exe net.tcp: // loc alhost: 5050 / Service1 Модель обслуживания Microsoft (R) Инструмент метаданных [Microsoft (R) Windows (R) Communication Foundation, Версия 4.0.30319.1] Авторское право (c) Корпорация Microsoft. Все права Зарезервировано.

Попытка загрузить метаданные из 'net.tcp: // localhost: 5050 / Service1' с использованием W S-Metadata Exchange. Эта URL не поддерживает DISCO. Инструмент метаданных модели обслуживания Microsoft (R) [Microsoft (R) Windows (R) Communication Foundation, версия 4.0.30319.1] Авторское право (c) Корпорация Microsoft. Все права защищены.

Ошибка: не удается получить метаданные из net.tcp: // localhost: 5050 / Service1

Если это служба Windows (R) Communication Foundation, к которой вы обращаетесь есть доступ, пожалуйста, убедитесь, что вы включили публикацию метаданных по указанному адресу. Чтобы получить помощь по включению публикации метаданных, см. документацию MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=65455 .

Ошибка обмена WS-метаданными URI: net.tcp: // localhost: 5050 / Service1

Метаданные содержат ссылку, которая не может быть разрешена: 'net.tcp: // localhost: 5050 / Service1'.

Соединение сокета было прервано. Это могло быть вызвано ошибкой при обработке вашего сообщения или превышением времени ожидания приема на удаленный хост или проблема основных сетевых ресурсов. Местный тайм-аут сокета был '00: 04: 59.9863281 '.

Se ha forzado la interrupción de una conexión existente por el host remoto

Если вам нужна дополнительная помощь, введите «svcutil /?»


Итак, я могу разместить службу без проблем, но я не могу создавать прокси.

Я пробовал практически все найденные мной конфигурации, но я думаю, что текущий файл web.config правильный. Конечные точки используют поведение, безопасность и привязки с использованием mex.

Я попытался создать app.config и установить его в ту же папку с svcutil.exe.

11
задан Cris Luengo 1 October 2018 в 22:17
поделиться