Настройка порта .netcore webapp не работает правильно - PullRequest
0 голосов
/ 24 января 2019

Я недавно начал создавать консольное приложение, которое запускало бы мой apis через командную строку процесса.У меня есть 2 API (1 веб API и 1 сокет API).

К сожалению, когда я пытаюсь установить порт API в главном методе программы через UseUrls(urls) вещи становятся вялыми.

Кажется, что сервер webApi запущен, и я могу перейти на страницу, перейдя в нужное место: https://localhost:7001.

НО -> Если я пытаюсьПри обращении к моему контроллеру (названному: CelestialObjectController), который находится в папке Controllers на моем webApi рядом с ValuesController, я получаю ошибку 500!https://localhost:7001/api/CelestialObject <- возвращает статус 500` </p>

Вот забавная вещь -> Знаете ли вы ValuesController, который порождает VS при создании нового проекта?На самом деле я могу добраться до этого контроллера и прочитать метод Get!

https://localhost:7001/api/values РАБОТАЕТ! .. Я вижу значение 1 и значение 2 ..... Но почему это работает? ..... И почему мой собственный контроллер выдает ошибку 500, хотя этов той же директории, что и ValuesController?Также, если я изменяю значения ValuesController, я могу видеть изменения при перекомпиляции и отладке.

Просто упомянуть, что метод .UseUrls($"https://*:{ProgramOptions.SocketPort}"), кажется, работает на моем SocketApi, который работает с SignalR на порту 7002. Яможет подключиться к концентратору сокета, и вызов https://localhost:7002/api/value также, кажется, работает.Я не проверял, чтобы добавить контроллер, так как мой сокетапи не должен полагаться на контроллеры, а скорее на концентраторы, и, похоже, он работает при попытке подключиться к концентратору через клиент-сигнализатор к этому адресу и порту

Еще одна вещь, которую я обнаружил: если я отлаживаю каждый API-интерфейс, все, кажется, работает нормально, и я могу получить данные, просто кажется, что они не работают в производственном режиме или при запуске как процесс ...

Я пытался изменить веб-настройки в launchSettings.json и в свойствах проекта, но это, похоже, испортило ситуацию, поэтому я отменил изменения настроек по умолчанию, и теперь я надеюсь, что смогу найти ответ здесь!

Может кто-нибудь объяснить мне это поведение и что я, возможно, должен сделать, чтобы правильно настроить порты?

Мой метод CreateWebHostBuilder в Program.cs из моего WebAPIвыглядит следующим образом (в основном так же, как в моем SocketAPI)

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .UseUrls($"https://*:{ProgramOptions.WebPort}");

Любая помощь в этой ситуации высоко ценится

Редактировать:

Если я смотрю на заголовки запроса / ответа, я вижу это: (из Firefox Devtools)

ОтветЗаголовки (111 B)
Длина содержимого
0 Дата
Четверг, 24 января 2019 г. 08:40:22 GMT Сервер
Kestrel

Requestheaders (446B)
Accept
text / html, application / xhtml + xm… plication / xml; q = 0,9, / ; q = 0,8 Accept-Encoding gzip, deflate, br Accept- Язык de, en-US; q = 0,7, en; q = 0,3 Cache-Control
max-age = 0 Соединение
keep-alive Cookie
Culture = {"Language": "de"};Согласие = {"Уровень": 3} DNT 1 Хост
локальный хост: 7001 Обновление-небезопасные запросы
1 Пользователь-агент
Mozilla / 5.0 (Windows NT 10.0;…) Gecko / 20100101 Firefox / 64.0

...