Code analysis in ASP.NET Core apps

.NET compiler platform analyzers inspect application code for code quality and style issues. This document lists only diagnostics for ASP.NET Core. For information on .NET diagnostics, see Overview of .NET source code analysis.

Diagnostic ID Breaking or non-breaking Description
ASP0000 Non-breaking Do not call 'IServiceCollection.BuildServiceProvider' in 'ConfigureServices'
ASP0001 Non-breaking Authorization middleware is incorrectly configured
ASP0003 Non-breaking Do not use model binding attributes with route handlers
ASP0004 Non-breaking Do not use action results with route handlers
ASP0005 Non-breaking Do not place attribute on method called by route handler lambda
ASP0006 Non-breaking Do not use non-literal sequence numbers
ASP0007 Non-breaking Route parameter and argument optionality is mismatched
ASP0008 Non-breaking Do not use ConfigureWebHost with WebApplicationBuilder.Host
ASP0009 Non-breaking Do not use Configure with WebApplicationBuilder.WebHost
ASP0010 Non-breaking Do not use UseStartup with WebApplicationBuilder.WebHost
ASP0011 Non-breaking Suggest using builder.Logging over Host.ConfigureLogging or WebHost.ConfigureLogging
ASP0012 Non-breaking Suggest using builder.Services over Host.ConfigureServices or WebHost.ConfigureServices
ASP0013 Non-breaking Suggest switching from using Configure methods to WebApplicationBuilder.Configuration
ASP0014 Non-breaking Suggest using top level route registrations
ASP0015 Non-breaking Suggest using IHeaderDictionary properties
ASP0016 Non-breaking Do not return a value from RequestDelegate
ASP0017 Non-breaking Invalid route pattern
ASP0018 Non-breaking Unused route parameter
ASP0019 Non-breaking Suggest using IHeaderDictionary.Append or the indexer
BL0001 Breaking Component parameter should have public setters
BL0002 Non-breaking Component has multiple CaptureUnmatchedValues parameters
BL0003 Breaking Component parameter with CaptureUnmatchedValues has the wrong type
BL0004 Breaking Component parameter should be public
BL0005 Non-breaking Component parameter should not be set outside of its component
BL0006 Non-breaking Do not use RenderTree types
MVC1000 Non-breaking Use of IHtmlHelper.Partial should be avoided
MVC1001 Non-breaking Filters cannot be applied to page handler methods
MVC1002 Non-breaking Route attributes cannot be applied to page handler methods
MVC1003 Non-breaking Route attributes cannot be applied to page models
MVC1004 Breaking Rename model bound parameter
MVC1005 Non-breaking Cannot use UseMvc with Endpoint Routing
MVC1006 Breaking Methods containing TagHelpers must be async and return Task