Служба WCF дает «HTTP не может регистрировать URL» при использовании TransportWithMessageCredential [duplicate]

Класс должен иметь явную $inject аннотацию для правильной оценки:

class HomeCtrl {
    static get $inject() {
        return ['$http'];
    }
    // or unstandardized shortcut:
    // static $inject = ['$http'];

    constructor($http) {
        this.$http = $http;
    }

    doMe() {
         this.$http...
    }
}
19
задан Community 23 May 2017 в 11:46
поделиться

3 ответа

Я думаю, вы подключаете две разные настройки. Netsh можно использовать для добавления сертификата для SSL, а также для того, чтобы приложение прослушивало данный порт без запуска под учетной записью администратора. Исключение составляет вторую настройку. Я не видел этого раньше, но я предполагаю, что вы уже зарегистрировали этот порт для HTTP, поэтому попробуйте использовать (и зарегистрировать) HTTPS на другом порту или заменить предыдущую регистрацию.

Изменить:

Откройте командную строку с повышенными привилегиями (As Admin). Сначала проверьте, назначен ли сертификат SSL для правильного порта:

netsh http show sslcert

. Проверьте, зарегистрировано ли прослушивание HTTP на этом порту, вызывая:

netsh http show urlacl 

. Если это используется, выполните следующую команду: удалить эту регистрацию:

netsh http delete urlacl url=http://+:54321/MyService

Добавить регистрацию снова для поддержки прослушивания HTTPS:

netsh http add urlacl url=https://+:54321/MyService user=domain\userName

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

Примечание: В https появляется символ-символ, который должен использоваться в urlacl. Мы не можем написать https://localhost:8733/... для соответствия urlacl по умолчанию для Visual Studio для http. Это, вероятно, имеет смысл, поскольку запрашиваемое имя хоста недоступно до окончания дешифрования.

26
ответ дан Oskar Berggren 19 August 2018 в 08:04
поделиться
  • 1
    не могли бы вы спросить, какие изменения я должен внести в свои .config файлы / netsh регистрации для этого? – Rob 10 September 2010 в 22:30
  • 2
    Я добавил некоторые команды netsh, чтобы перерегистрировать вашу службу. – Ladislav Mrnka 11 September 2010 в 11:45
  • 3
    это было именно то, что у меня был неправильный порт. Набрасывание себя на глубокий конец явно не самый простой способ борьбы с WCF и HTTPS, особенно после стакана или двух вин! знак равно – Rob 13 September 2010 в 16:53
  • 4
    Спасибо огромное! – Adam Caviness 11 February 2013 в 21:07

Запустите Visual Studio в режиме «Запуск от имени администратора» Закройте приложение Visual Studio и откройте его в режиме администратора. Этого достаточно, что ошибка исчезла. Ошибки HTTP возникают при запуске Visual Studio в режиме без администрирования

-1
ответ дан Lavanya 19 August 2018 в 08:04
поделиться
  • 1
    Запуск Visual Studio в качестве администратора - это почти никогда правильный ответ. Выполнение ничего , поскольку Администратор почти никогда не отвечает . В принятом ответе указан правильный способ сделать это. Если вы запустите Visual Studio в качестве администратора, ваш код, скорее всего, понадобится запустить в качестве администратора - это не место, которое вам нужно или хотите – Rob 16 February 2018 в 12:55
  • 2
    Я всегда получаю эту ошибку, когда я не отлаживаю проект в режиме администратора. Как только я закрою решение и откройте VS в режиме администратора, и отладка ошибки никогда не возникает – Lavanya 20 February 2018 в 06:19

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

Я запускал приложение, которое «всегда работало», и после различных (не регистрировалось с тех пор, как я не ожидал проблемы) сочетания запуска его через удаленный рабочий стол или локально, вход в систему и выход из нее, а также замену его на перекомпилированную, но в остальном идентичную версию с другим номером версии. Я получил то же самое ». Еще одно приложение уже зарегистрировало этот URL-адрес ... blah, blah ".

По-видимому (?) регистрация была специфичной для экземпляра, который выполнялся, и сохранялся при отключении этого приложения. (?) Во всяком случае, старая пословица Windows, «когда под сомнением перезагрузилась», позаботилась об этом. Без каких-либо изменений в самом приложении он работал без жалоб. Может быть, де-регистрация и т. Д. Также сработала бы. Это было под Windows 10 - я никогда не видел этого с более ранними версиями Windows.

0
ответ дан mickeyf 19 August 2018 в 08:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: