Установка Microsoft.Azure.SignalR.AspNet приводит к тому, что метод не реализовал ошибку времени выполнения при развертывании на сервере, но отлично работает в Visual Studio 2017
Ошибка:
Метод 'MyController' в типе 'MyProject.AppStart.Selector' из сборки 'MyProject, Version=1.0.0.0, Culture= нейтральный, PublicKeyToken=......' не имеет реализации.
Фон: у меня есть ASP.NET
проект с target
рамки установлены .NET Framework 4.6.2
, После установки Microsoft.Azure.SignalR.AspNet
1.0.0-preview1-103a17
от nuget package manager
, он работает и работает нормально Visual Studio 2017
, Совершенно никаких проблем. Когда я развертываю релиз на своем сервере и пытаюсь получить доступ к любому из его сервисов, я получаю вышеупомянутую ошибку. Метод реализован в классе, который реализует System.Web.Http.Dispatcher.IHttpControllerSelector
,
Конфигурация:
- Машина, на которой работает код: Windows 10 Версия 1809 (сборка ОС 17763.316). Visual Studio 2017 15.9.6.
- Компьютер, на котором не работает код: Windows Server 2012 R2 Версия 6.2 Build 9200. IIS версия 8.5.9600.16384.
Что я пробовал:
- Очистите / Восстановите развертывание снова.
- удалять
obj
а такжеbin
папку, опубликовать и развернуть снова. - Удалил CachedAssessmbly, как предложено здесь.
- Изменить конфигурацию с
Release
вDebug
, - устанавливать
Azure SDK
вWindows Server 2012 R2
машина. - Попробуйте установить зависимости
Microsoft.Azure.SignalR.AspNet
без непосредственной установкиMicrosoft.Azure.SignalR.AspNet
, Похоже, что ошибка начинаетMicrosoft.Azure.SignalR.Protocols
установлено. ЗависимостиMicrosoft.Azure.SignalR.Protocols
являются:
Все эти четыре зависимости добавляются при установке Microsoft.Azure.SignalR.Protocols
то есть они еще не используются.
Я не могу найти проблему.
Обновление: я развернул папку на вышеупомянутой машине Windows 10 и использовал IIS Manager
создать приложение. Приложение отлично работает на той же машине без Visual Studio.
1 ответ
В Windows Server 2012 R2
машина, которую я изначально установил .NET Core 2.2 runtime
вместо SDK
, Я установил следующее по порядку:
- .NET Core 2.2 SDK (развертывание по-прежнему не работает)
- .NET Framework 4.7.2 Dev Pack (попросил перезапустить, отложил)
- .NET Framework 4.6.1 Dev Pack
После установки .NET Framework 4.6.1 Dev Pack
Я перезапустил. И сейчас развертывание работает.
Я не могу точно определить решение, но я предполагаю, что установка .NET Core 2.2 SDK
исправил проблему. После того, как это было установлено, окно установки предложило некоторую версию Microsoft.AspNetCore
была установлена. Это не просило перезагрузки, но я думаю, как .NET Core 2.2 Runtime
был уже установлен и используется другим приложением, требуется перезагрузка.
Довольно странно, что Microsoft.AspNetCore
не был установлен вместе с .NET Core 2.2 Runtime
,
Потребовалось некоторое время, чтобы решить эту проблему, так как исключение типов может возникнуть во многих других сценариях.
Надеюсь, что это решение поможет другим людям.