我將解決方案從VS2010遷移到VS2013後,出現InvalidCastException。無法轉換類型爲'System.Web.Hosting.SimpleWorkerRequest'的對象以鍵入'System.Web.Hosting.IIS7WorkerRequest'
在VS2010一切正常,同樣的代碼給出VS2013以下錯誤:
類型的異常則「」發生在 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,錯誤發生在這裏。 –