Я получаю InvalidCastException после того, как я перенес свое решение из VS2010 в VS2013.Невозможно наложить объект типа «System.Web.Hosting.SimpleWorkerRequest» на тип «System.Web.Hosting.IIS7WorkerRequest»
В VS2010 все работает отлично, и тот же код выдает следующую ошибку в VS2013:
Исключение типа «System.InvalidCastException» произошло в System.Web.dll, но не был обработан в пользовательском коде
Дополнительная информация: Не удается привести объект типа «System.Web.Hosting.SimpleWorkerRequest» ввести «System.Web.Hosting.IIS7WorkerRequest».
Я не знаю, что делать, не нашел ничего, связанного с Интернетом.
Ошибка возникает в строке 5 в следующем фрагменте кода:
public static void AuthenticateUser(String UserName, Int32 Minutes = 30, Boolean IsPersistent = true)
{
FormsAuthenticationTicket _ticket = new FormsAuthenticationTicket(1, UserName, DateTime.Now, DateTime.Now.AddMinutes(Minutes), IsPersistent, String.Empty);
FormsIdentity _id = new FormsIdentity(_ticket);
var _roles = Roles.GetRolesForUser(UserName);
HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(_id, _roles);
}
Ошибка возникает в фрагменте кода, где произнесение не выполняется мной. Я отредактировал свой вопрос. –
Является ли AuthenticateUser определяемым пользователем методом? Попробуйте выйти из вызова Roles.GetRolesForUser, чтобы увидеть, действительно ли там происходит ошибка. Если да, то это происходит для всех пользователей или только одного? Основная проблема заключается в том, что что-то где-то пытается сделать это незаконное литье. Предположения, которые привели к этому незаконному акту, должны быть рассмотрены, прежде чем вы сможете его решить. – Marisa
AuthenticateUser - это пользовательский метод. Я вырвал Roles.GetRolesForUser, и здесь произошла ошибка. –