对于一个在向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;
}
}
请有人指出我正确的方向吗?我完全不知道从哪里开始排除故障