2009-02-17 2 views
4

Я только что создал службу WCF с this MSDN tutorial.Как запустить службу WCF за пределами Visual Studio?

  • изнутри Visual Studio я могу CTRL-F5 сервис, так что работают
  • , то я могу начать свой клиент консольного приложения и потребляю на службу никаких проблем

Теперь я хочу, чтобы начать свои услуги визуальной студией OUTSIDE и использовать ее у разных клиентов.

Но когда я иду в командную строку и выполняю этот файл ../bin/Debug/testService.exe, я получаю исключение: «Вход имеет неправильный формат».

Я получаю ту же ошибку, когда публикую эту службу и запускаю опубликованный файл .exe.

Что мне здесь не хватает? Нужно ли мне отправлять какой-то параметр, который Visual Studio отправляет, чтобы запустить его?

Как запустить службу WCF извне вне Visual Studio?

ответ

2

Без просмотра кода и файлов конфигурации сложно решить, почему вы получаете эту проблему, но настройка службы WCF правильно может быть немного сложной вначале.

Я рекомендую проверить endpoint.TV screencasts on WCF и, в частности, self hosting WCF services screencast.

Они просты в использовании и объяснят достаточно, чтобы вы начали.

0

Для меня самый простой способ показать кому-то, как получить приложение WCF и запустить его, чтобы вы могли научиться - это создать его вручную, избегая встроенных инструментов VS2008. Вот отличный учебник, который показывает вам, что делать:

WCF the Manual Way - the Right Way

Я написал статью расширяющийся в этой статье немного более на моем блоге. Я включил исходные файлы, а также скринкаст. Вы можете найти его здесь:

Manual WCF - An Extension

Кроме того, отличная серия руководств можно найти в Микеле Бустаманте Learning WCF. Он немного устарел, сосредоточившись на .NET 3.0, но большинство из них все еще работают, и она обновила свой источник в своем блоге.

0
Uri baseAddress = new Uri("http://localhost:8080/hello"); 

// Create the ServiceHost. 
using (ServiceHost host = new ServiceHost(typeof(HelloWorldService), baseAddress)) 
{ 
    // Enable metadata publishing. 
    ServiceMetadataBehavior smb = new ServiceMetadataBehavior(); 
    smb.HttpGetEnabled = true; 
    smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15; 
    host.Description.Behaviors.Add(smb); 

    // Open the ServiceHost to start listening for messages. Since 
    // no endpoints are explicitly configured, the runtime will create 
    // one endpoint per base address for each service contract implemented 
    // by the service. 
    host.Open(); 

    Console.WriteLine("The service is ready at {0}", baseAddress); 
    Console.WriteLine("Press <Enter> to stop the service."); 
    Console.ReadLine(); 

    // Close the ServiceHost. 
    host.Close(); 
} 

http://msdn.microsoft.com/en-us/library/ms731758%28v=vs.110%29.aspx

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