Owin / System.Web.Http.SelfHost - не запускается после перехода на .NET Core - PullRequest
0 голосов
/ 14 октября 2018

Я перенес проект из .NET Framework в .NET Core, создав новый проект, импортировав код и установив зависимости.Все прошло хорошо, за исключением компонента API. Ранее я использовал System.Web.Http.Selfhost, однако теперь, когда я пытаюсь запустить программу, я получаю следующее исключение:

System.TypeLoadException HResult = 0x80131522 Сообщение =Не удалось загрузить тип 'System.ServiceModel.HostNameComparisonMode' из сборки 'System.ServiceModel, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089'.Source = mBot StackTrace: at mBot.Program.d__2.MoveNext () в C: \ Users \ maren \ source \ repos \ mBot-Admin \ mBot \ Program.cs: строка 70 в System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start [TStateMachine] (TStateMachine & stateMachine) в mBot.Program.Run () в mBot.Program.Main (String [] args) в C: \ Users \ maren \ source \ repos \ mBot-Admin \ mBot \ Program.cs: строка 28

Это происходит в этой строке, и комментирование строки приводит к успешному запуску программы:
https://awau.moe/ad25d4.png
В этот момент я должен отметить, что значение Config.BotConfig.ApiPort8080
Я также пытался использовать OWIN для хостинга, так как это, кажется, более свежая версия.Я получаю следующее:

System.Reflection.TargetInvocationException HResult = 0x80131604
Сообщение = Исключение было сгенерировано целью вызова.
Source = System.Private.CoreLib StackTrace:в System.RuntimeMethodHandle.InvokeMethod (аргументы Object target, Object [], сигнатура sig, логический конструктор) в System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (параметры объекта obj, Object [], аргументы Object []) в Microsoft.Owin.Hosting.ServerFactory.ServerFactoryAdapter.Create (построитель IAppBuilder) в Microsoft.Owin.Hosting.Engine.HostingEngine.Start (контекст StartContext) в Microsoft.Owin.Hosting.Starter.HostingStarter.Start (параметры StartOptions) в mBot.Movee____) в C: \ Users \ maren \ source \ repos \ mBot-Admin \ mBot \ Program.cs: строка 47 в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification TaskNotification (задача задачи) в mBot.Program.Main (String [] args) в C: \ Users \ maren \ source \ repos \ mBot-Admin \ mBot \ Program.cs: строка 28

Внутреннее исключение 1: HttpListenerException: доступ запрещен

https://awau.moe/21800e.png

Я не против, использую ли я OWIN или Selfhost, пока что бы это ни было работает .

Кто-нибудь знает, что может быть причиной этого?Моя учетная запись не имеет права использовать порт 8080, я уже добавил это ранее, и он все еще работает со старым кодом.

Текущий код, который я использую, находится по адресу https://gitlab.com/marens101/mBot-Admin/tree/rewrite/mBot
- Основной код для веб-сервера находится в Program.cs, строки 45-55.Есть и OWIN, и SelfHost, оба закомментированы.
- Объект OwinStartup находится в API/OwinStartup.cs


Обновление : сейчас я использую ASP.NET Core сKestrel (спасибо, @ Lex Li ), который в основном работает, за исключением того, что приложение больше не закрывается из-за необработанного исключения, что довольно важно.Вместо этого соединение с другим моим API закрыто, но веб-сервер продолжает работать, и приложение не закрывается.Кто-нибудь знает способ обойти это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...