У меня смешная проблема с приложением, которое всегда работало нормально с точки зрения публикации в Azure и последующего запуска.
Внезапно, запустив его сегодня, я вижу эту ошибку в своих журналах:
Произошла ошибка при попытке создать контроллер типа 'MYPROJECT.Controllers.HomeController'.Убедитесь, что у контроллера есть открытый конструктор без параметров.
Обратите внимание , что приложение даже не должно достигать HomeController
, потому что я еще не проходил аутентификацию на MS O365... это не имеет смысла.
А затем несколько ошибок после этого:
Путь '/Views/Shared/Error.cshtml' не найден.
Это, конечно, отдельная проблема.
Однако ни одна из них не является проблемой при запуске приложения из VS.Т.е. приложение выполняет перенаправление на Errors.cshtml
, и с конструктором HomeController
проблем нет.
Я уже пробовал
- Удаление всего с сервера и повторная публикация
- Добавление пустого конструктора из-за ошибки
Но это совсем не помогает.
Домашний контроллер:
[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;
}
}
Пожалуйста, кто-нибудь может указать мне правильное направление?Я абсолютно не знаю, с чего начать устранение неполадок в этом