Размещение службы WCF в Vista - PullRequest
       41

Размещение службы WCF в Vista

4 голосов
/ 28 февраля 2009

Я собрал небольшой сервис WCF в VS2008, и когда я пытаюсь запустить хост, используя протокол HTTP, он бомбит, потому что у него нет соответствующих прав для этого. В моей строке "Host.Open ()" я получаю следующее исключение: " HTTP не может зарегистрировать URL http://+:9001/. Ваш процесс не имеет прав доступа к этому пространству имен ." У меня, похоже, не было этой проблемы при использовании TCP. Моя операционная система Vista Home Premium.

Это происходило, когда я пытался отладить его внутри VS2008. После долгих исследований я решил, что могу запустить хост, собрав его, перейдя в папку «bin» и щелкнув правой кнопкой мыши по своему исполняемому файлу и выбрав «Запуск от имени администратора». То же самое произошло, когда я попытался использовать WcfSvcHost.exe. Мне пришлось открыть окно командной строки VS2008 из моего меню, используя «Запуск от имени администратора», прежде чем я смог успешно заставить WcfSvcHost запустить мой сервис.

Есть ли способ сделать это правильно вместо использования этого обходного пути? У меня будут похожие проблемы, когда я попытаюсь развернуть эту версию на следующей неделе на Windows 2003 Server?

Ответы [ 4 ]

7 голосов
/ 28 февраля 2009

Эта ссылка может вам помочь: http://msdn.microsoft.com/en-us/library/ms733768.aspx

Короткая версия: предварительно зарегистрируйте адрес / пространство имен с привилегированной консоли

netsh http add urlacl url = http://+:9001/ user = DOMAIN \ user

2 голосов
/ 28 февраля 2009

Убедитесь, что вы запускаете VS от имени администратора.

1 голос
/ 12 июня 2009

Локально, вы можете изменить свой базовый адрес на что-то вроде этого:

    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8731/Design_Time_Addresses/MyService/" />
      </baseAddresses>
    </host>

Основной частью является добавление "Design _ Time _ Addresses". Если вы создаете проект библиотеки служб WCF, он по умолчанию настраивает App.config для этого проекта. Все работает нормально, но если вы удалите «Design _ Time _ Addresses» и попытаетесь запустить его с «http://localhost:8731/MyService/",», вы получите ошибку, с которой столкнулись.

0 голосов
/ 01 марта 2009

У меня была похожая проблема здесь:

WCF ServiceHost basicHttpBinding 503 ошибка

Команда netsh работает для Vista, но для сервера Windows 2003 есть утилита HttpCfg.exe, которая позволяет зарегистрировать URL / пространство имен для учетной записи. Не уверен, что netsh доступен в 2003 году.

На самом деле я никогда не работал на Vista, все равно получаю 503 ошибки, когда пытаюсь получить доступ к сервисам. Если вы столкнетесь с той же проблемой / поймете это, я буду признателен, если вы напишите снова! Спасибо

...