Самодостаточный WebAPI работает в IDE, но не вне IDE

У меня есть собственный WebAPI, встроенный в консольное приложение. Когда я запускаю его через VisualStudio IDE, все работает нормально. У меня есть клиентское приложение, которое прекрасно подключается и взаимодействует с приложением WebAPI. Однако, если я запускаю свое приложение WebAPI за пределами IDE, просто дважды щелкнув по EXE, мое клиентское приложение вообще не сможет подключиться к нему. Я не получаю никакой полезной информации об ошибках, в клиенте есть два исключения InnerException (при вызове PostAsXmlAsync). Один говорит "Невозможно подключиться к удаленному серверу", а второй - "Произошла ошибка при отправке запроса".

Обычно я бы устранял и устранял это самостоятельно, если бы это была постоянная ошибка. Но ключевым элементом здесь является то, что если я запусту все это через VisualStudio IDE, все будет работать, как и ожидалось.

Кто-нибудь может дать несколько советов о том, что я должен смотреть на / для? Thanx!

1 ответ

1) Если все, что вы делаете, это локальный доступ к самому хосту, вы можете установить следующую опцию конфигурации:

config.HostNameComparisonMode = System.ServiceModel.HostNameComparisonMode.Exact;

При этом вам не нужно запускать процесс с повышенными привилегиями (опять же, если вы хотите получить к нему локальный доступ).

2) Другой вариант - зарезервировать определенный порт для конкретного пользователя:

netsh http add urlacl url=http://+:999/ user=machine\username

Это также позволяет запускать собственный хост не от имени администратора, если процесс запускается для пользователя, для которого был зарезервирован порт.

3) Наконец, последний вариант - просто запустить его с правами администратора.

Другие вопросы по тегам