InvalidOperationException was unhandled by user code
InvalidOperationException was unhandled by user code
An exception of type 'System.InvalidOperationException' occurred in Microsoft.AspNet.Mvc.Core.dll but was not handled in user code
Additional information: Unable to find the required services. Please add all the required services by calling 'IServiceCollection.AddMvc()' inside the call to 'IApplicationBuilder.ConfigureServices(...)' or 'IApplicationBuilder.UseMvc(...)' in the application startup code.
用户代码中存在未处理的无效操作异常
用户代码中存在没有处理的'System.InvalidOperationException'类型的异常出现在Microsoft.AspNet.Mvc.Core.dll中。
附加信息: 无法找到所需的服务。请添加所有必需的服务通过调用'IServiceCollection.AddMvc()'在'IApplicationBuilder.ConfigureServices(...)'内部
或'IApplicationBuilder.UseMvc(...)' 在应用程序启动代码中调用。
产生异常的文件为“setup.cs”,代码如下:
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Framework.DependencyInjection;
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseDefaultFiles();
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
public static void Main(string[] args) => WebApplication.Run(args);
}
在app.UseMvc处出错了,能看懂错误提示中的附加信息的话,应该已经大概明白了怎么处理。我们把出错的代码加个Try catch处理,得到具体的错误信息:
发现和上面给出的附加信息是一样的。
所以调试运行的时候产生未处理的异常,不要急着复制第一句错误信息“An exception of type 'System.InvalidOperationException' occurred in Microsoft.AspNet.Mvc.Core.dll but was not handled in user code”去搜索,对于类似 的错误这通常找到的答案都不是你想要的,因为这种类似的异常太多了。而应该去搜索附加信息Additional information: 后面的内容,那才是真实的错误信息。
那么上面的这个问题怎么解决呢?
啥也不说了,上代码:
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Framework.DependencyInjection;
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services)
{
// Add framework services.
services.AddMvc();
}
public void Configure(IApplicationBuilder app)
{
app.UseDefaultFiles();
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
public static void Main(string[] args) => WebApplication.Run(args);
}
=========================分隔线====================================如果自己没有尽力,就没有资格批评别人不用心。开口抱怨很容易,但是闭嘴努力的人,更加值得尊敬。