Visual Studio не может открыть порт для размещения службы WCF - PullRequest
2 голосов
/ 01 августа 2011

Я создал решение VS2010 C # со службой WCF, библиотекой для получения данных, служба отлично работает в консольном приложении в решении.Нет проблем.

Я должен использовать его в проекте VS2008 (и, возможно, позже в VS2005) для более старых проектов.Затем я запускаю VS2010, я получаю «Тестовый клиент WCF».В это время в VS2008 я пытался «добавить веб-ссылку» на локальный компьютер ... безрезультатно.

Затем я попытался создать консольное приложение с Vs2010 для его размещения, я сделал это:

Uri baseAddress = new Uri("http://localhost:8080/hello");
using (ServiceHost host = new ServiceHost(typeof(SecurityAccessWCF.WCFSecurityService), baseAddress))
{
    // Enable metadata publishing.
    ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
    smb.HttpGetEnabled = true;
    smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
    host.Description.Behaviors.Add(smb);

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

Я получаю сообщение об ошибке Open(), появляется сообщение об ошибке «AddressAccessDeniedException - HTTP не может зарегистрировать URL-адрес ... У вашего процесса нет прав доступа» (указанная ссылка не ясна,Я на Win7 x64 как локальный админ и в домене)

enter image description here

Ответы [ 2 ]

5 голосов
/ 01 августа 2011

Shift + Щелкните правой кнопкой мыши на ярлыке Visual Studio и выберите Запуск от имени администратора

Таким образом, вы сможете его разместить.

Кроме того, вы можете создать проект и запустить полученное консольное приложение таким же образом под учетной записью администратора.

4 голосов
/ 01 августа 2011

Это стандартная ошибка, означающая, что ваше приложение не может зарегистрировать домен.Обычно это проблема в Vista / Windows 7 с безопасностью.Войдите в систему как администратор и запустите netsh http add urlacl url=http://+:80/Localhost user=DOMAIN\user

Здесь - статья MSDN с дополнительной информацией

...