Произошла ошибка при попытке создать контроллер.Убедитесь, что у контроллера есть открытый конструктор без параметров - PullRequest
0 голосов
/ 18 мая 2018

У меня смешная проблема с приложением, которое всегда работало нормально с точки зрения публикации в Azure и последующего запуска.

Внезапно, запустив его сегодня, я вижу эту ошибку в своих журналах:

Произошла ошибка при попытке создать контроллер типа 'MYPROJECT.Controllers.HomeController'.Убедитесь, что у контроллера есть открытый конструктор без параметров.

Обратите внимание , что приложение даже не должно достигать HomeController, потому что я еще не проходил аутентификацию на MS O365... это не имеет смысла.

А затем несколько ошибок после этого:

Путь '/Views/Shared/Error.cshtml' не найден.

Это, конечно, отдельная проблема.

Однако ни одна из них не является проблемой при запуске приложения из VS.Т.е. приложение выполняет перенаправление на Errors.cshtml, и с конструктором HomeController проблем нет.

Я уже пробовал

  1. Удаление всего с сервера и повторная публикация
  2. Добавление пустого конструктора из-за ошибки

Но это совсем не помогает.

Домашний контроллер:

[Authorize]
public class HomeController : BaseController
{
    GraphService graphService = new GraphService();

    public HomeController()
    {
    }

    public ActionResult Index()
    {
        return View();
    }
}

BaseController:

public class BaseController : Controller
{
    protected InMemoryCache cacheService;
    protected MyEntities db;
    protected UserManager userManager;
    protected IEnumerable<SharePointUser> users;
    protected CRMTItemsManager crmtItemsManager;
    protected SPClient spClient;

    public BaseController()
    {
        spClient = new SPClient(AppSettings.SharePointBaseUrl);
        crmtItemsManager = new CRMTItemsManager();
        cacheService = new InMemoryCache();
        db = new MyEntities();

        users = cacheService.GetOrSet(Config.UsersCacheKey, ()=>UserManager.GetUsers());
    }

    protected override void OnException(ExceptionContext filterContext)
    {
        if (filterContext.ExceptionHandled)
        {
            return;
        }

        var logger = new Logger();
        logger.LogError(filterContext.Exception, ControllerContext.RouteData.Values["controller"].ToString());

        filterContext.Result = new ViewResult
        {
            ViewName = "~/Views/Shared/Error.cshtml",
            ViewData = new ViewDataDictionary()
            {
                {"exception", filterContext.Exception}
            }
        };
        filterContext.ExceptionHandled = true;
    }
}

Пожалуйста, кто-нибудь может указать мне правильное направление?Я абсолютно не знаю, с чего начать устранение неполадок в этом

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