加载控制器时出错

Posted

技术标签:

【中文标题】加载控制器时出错【英文标题】:Error loading controller 【发布时间】:2014-07-28 04:12:36 【问题描述】:

我收到以下错误,我不知道为什么我直接从模板运行代码。有人在堆栈跟踪中看到我没有看到的东西吗?贴在下面。

“/Cfia.Web.MvcTemplate.Example”应用程序中的服务器错误。

远程服务器返回错误:(404) Not Found.

描述:执行过程中发生了未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。

异常详细信息:System.Net.WebException:远程服务器返回 错误:(404) 未找到。

错误来源:

Line 27:         /// Initializes a new instance of the <see cref="ApplicationBaseController" /> class.
Line 28:         /// </summary>
Line 29:         public ApplicationBaseController()
Line 30:         
Line 31:             ApplicationTitle = Labels.GetLabel("Application.MvcTemplate.Examples");

堆栈跟踪:

[WebException:远程服务器返回错误:(404)未找到。] System.Net.HttpWebRequest.GetResponse() +8521152 System.Xml.XmlDownloadManager.GetNonFileStream(Uri uri,ICredentials 凭据,IWebProxy 代理,RequestCachePolicy 缓存策略)+160 System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri,字符串角色,类型 ofObjectToReturn) +328 System.Xml.XmlTextReaderImpl.OpenUrlDelegate(对象 xmlResolver) +75 System.Threading.CompressedStack.runTryCode(Object userData) +260 System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode 代码,CleanupCode backoutCode,对象 userData) +0 System.Threading.CompressedStack.Run(CompressedStack 压缩栈, ContextCallback 回调,对象状态)+118 System.Xml.XmlTextReaderImpl.OpenUrl() +7534355 System.Xml.XmlTextReaderImpl.Read() +187 System.Xml.XmlLoader.Load(XmlDocument 文档,XmlReader 阅读器,布尔值 保留空白)+176 System.Xml.XmlDocument.Load(XmlReader 阅读器)+144 System.Xml.XmlDocument.Load(字符串文件名)+205 Cfia.Globalization.Provider.XmlFileLabelProvider.RetrieveAllLabels(CultureInfo 文化)+424 Cfia.Globalization.Provider.LabelService.RetrieveAllRawLabels(CultureInfo 文化)+490 Cfia.Globalization.Provider.LabelService.RetrieveAllLabels(CultureInfo 文化)+50 Cfia.Globalization.Provider.LabelService.Labels(CultureInfo 文化) +344 Cfia.Globalization.Labels.GetLabels(CultureInfo 文化) +157 Cfia.Web.Mvc.Menu.FooterLink..ctor() +221 Cfia.Web.Mvc.ControllerBase.BaseController..ctor() +165 Cfia.Web.MvcTemplate.Example2.Controllers.ApplicationBaseController..ctor() 在 c:\Users\cir-anglinovd\Documents\Visual Studio 2012\Projects\ContosoUniversity\Cfia.Web.MvcTemplate.Example2\Controllers\ApplicationBaseController.cs:29 Cfia.Web.MvcTemplate.Example2.Controllers.HomeController..ctor() 在 c:\Users\cir-anglinovd\Documents\Visual Studio 2012\Projects\ContosoUniversity\Cfia.Web.MvcTemplate.Example2\Controllers\HomeController.cs:30

[TargetInvocationException: 异常已被目标抛出 调用。] System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0 System.RuntimeType.CreateInstanceSlow(布尔 publicOnly,布尔 skipCheckThis、布尔填充缓存、StackCrawlMark 和 stackMark)+159 System.RuntimeType.CreateInstanceDefaultCtor(布尔 publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +256 System.Activator.CreateInstance(类型类型,布尔非公共)+127 System.Activator.CreateInstance(类型类型)+11 System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +92

[InvalidOperationException: 尝试创建一个错误 类型控制器 'Cfia.Web.MvcTemplate.Example2.Controllers.HomeController'。确保 控制器有一个无参数的公共构造函数。] System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext,类型控制器类型)+562491 System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext,字符串控制器名称)+89 Castle.Proxies.Invocations.IControllerFactory_CreateController.InvokeMethodOnTarget() +155 Castle.DynamicProxy.AbstractInvocation.Proceed() +116 Glimpse.Core.Extensibility.AlternateMethod.NewImplementation(IAlternateMethodContext 上下文)+71 Castle.DynamicProxy.AbstractInvocation.Proceed() +604 Castle.Proxies.IControllerFactoryProxy.CreateController(RequestContext requestContext,字符串控制器名称)+193 System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext、IController&控制器、IControllerFactory&工厂) +305 System.Web.Mvc.c__DisplayClass6.b__2() +78 System.Web.Mvc.c__DisplayClassb1.<ProcessInApplicationTrust>b__a() +19 System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Func1 func) +128 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +12551795 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288

【问题讨论】:

您可能没有使用控制器方法。错误代码来自 IIS,这意味着 URL 可能是错误的。 你的意思是这个 URL 可能是错误的?您认为它与路由表中定义的有效路由不匹配? 您还需要显示出现错误的代码。 我认为您需要提供ApplicationBaseController 构造函数代码,然后Labels 是什么? 【参考方案1】:

我修复了它,只需要在 web.config 文件中进行一些更改。

【讨论】:

以上是关于加载控制器时出错的主要内容,如果未能解决你的问题,请参考以下文章

将 .NET Core 控制台应用程序部署到 Azure WebJobs 时加载 hostpolicy.dll 时出错

tableview 在 connectionDidFinishLoading 中重新加载数据时出错(由 json 解析)

如果 XIB 在 DLL / 库中,则加载视图时出错

FastAdmin 开发时出错的调试

Zend Framework - 当 URL 在控制器/动作段上有 $$$ 或 ~ 时出错

乘客:启动预加载器时出错