RoslynCodeDomProvider
RoslynCodeDomProvider copied to clipboard
NullReferenceException After Upgrading Microsoft.CodeDom.Providers.DotNetCompilerPlatform from Version 3.6.0 to 3.11.0 or 4.1.0
After upgrading Microsoft.CodeDom.Providers.DotNetCompilerPlatform from version 3.6.0 to either 3.11.0 or 4.1.0, I encountered the following error message:
Microsoft.CodeDom.Providers.DotNetCompilerPlatform failed to uninstall. Restart Visual Studio to finish process.
Upon restarting Visual Studio and running my website, I received this error: System.NullReferenceException HResult=0x80004003 Message=Object reference not set to an instance of an object. Source=CMS StackTrace: at CMS.Startup.ConfigureAuth(IAppBuilder app) in D:\Mis Proyectos\VS22\websites\jw\CMS\CMS\App_Start\Startup.Auth.cs:line 30
Here is the relevant code from Startup.Auth.cs:
using CMS.Models;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.Owin;
using Microsoft.Owin;
using Microsoft.Owin.Security.Cookies;
using Owin;
using System;
using System.Configuration;
namespace CMS
{
public partial class Startup {
// For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301883
public void ConfigureAuth(IAppBuilder app)
{
// Configure the db context, user manager and signin manager to use a single instance per request
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
// Enable the application to use a cookie to store information for the signed-in user
// and to use a cookie to temporarily store information about a user logging in with a third-party login provider
// Configure the sign-in cookie
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
SlidingExpiration = true,
ExpireTimeSpan = TimeSpan.FromMinutes(Double.Parse(ConfigurationManager.AppSettings["CookieExpireTimeSpan"].ToString())),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(Double.Parse(ConfigurationManager.AppSettings["CookieExpireTimeSpan"].ToString())),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
// Use a cookie to temporarily store information about a user logging in with a third-party login provider
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
// Enables the application to temporarily store user information when they are verifying the second factor in the two-factor authentication process.
app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));
// Enables the application to remember the second login verification factor such as phone or email.
// Once you check this option, your second step of verification during the login process will be remembered on the device where you logged in from.
// This is similar to the RememberMe option when you log in.
app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie);
// Uncomment the following lines to enable logging in with third-party login providers
switch (ConfigurationManager.AppSettings["OAuthApp"])
{
case "local":
app.UseFacebookAuthentication(
appId: ConfigurationManager.AppSettings["FacebookLocalAppId"].ToString()
, appSecret: ConfigurationManager.AppSettings["FacebookLocalAppSecret"].ToString()
);
break;
case "beta":
app.UseFacebookAuthentication(
appId: ConfigurationManager.AppSettings["FacebookBetaAppId"].ToString()
, appSecret: ConfigurationManager.AppSettings["FacebookBetaAppSecret"].ToString()
);
break;
case "cms":
default:
app.UseFacebookAuthentication(
appId: ConfigurationManager.AppSettings["FacebookCmsAppId"].ToString()
, appSecret: ConfigurationManager.AppSettings["FacebookCmsAppSecret"].ToString()
);
break;
}
}
}
}
Even after downgrading the package back to version 3.6.0, the error persists. Previously, the application ran without issues on version 3.6.0 before the upgrade.
To resolve the issue temporarily, I restored a backup of my website, which restored functionality.
Could anyone advise on what might be causing this error and how to resolve it?
Thanks in advance for your help!
Ruben