尝试创建控制器时发生错误。确保控制器具有无参数的公共构造函数

时间:2018-05-18 03:35:51

标签: c# asp.net-mvc azure

对于一个在向Azure发布然后运行方面一直运行良好的应用程序,我遇到了一个非常令人沮丧的问题。

突然,今天运行时,我可以在日志中看到此错误:

  

尝试创建类型为' MYPROJECT.Controllers.HomeController'的控制器时发生错误。确保控制器具有无参数的公共构造函数。

注意该应用程序甚至不应该到达HomeController,因为我还没有针对MS O365进行身份验证......这没有任何意义。

然后是几个错误:

  

路径' /Views/Shared/Error.cshtml'没找到。

这当然是一个单独的问题。

但是,在VS中运行应用程序时,这些都不是问题。即该应用确实重定向到Errors.cshtmlHomeController构造函数没有问题。

我已经尝试了

  1. 从服务器删除所有内容并重新发布
  2. 添加空构造函数,因为错误提示
  3. 但这些根本没有帮助。

    家庭控制器:

    [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;
        }
    }
    

    请有人指出我正确的方向吗?我完全不知道从哪里开始排除故障

0 个答案:

没有答案