加载控制器时出错
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__DisplayClassb
1.<ProcessInApplicationTrust>b__a() +19 System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Func
1 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 解析)