4

我正在使用 ASP.NET SqlMembershipProvider 在 Web 应用程序上实现授权,但是在调用 GetUser 方法时它随机抛出了一个无效的强制转换异常。

我可以登录并很好地浏览页面,但是比随机点,繁荣,它崩溃了,并抛出了异常:

Unable to cast object of type 'System.Int32' to type 'System.String'

查看堆栈跟踪,您可以清楚地看到它是由 Membership Provider 引起的:

[InvalidCastException: Unable to cast object of type 'System.Int32' to type 'System.String'.]
   System.Data.SqlClient.SqlBuffer.get_String() +5002910
   System.Data.SqlClient.SqlDataReader.GetString(Int32 i) +55
   System.Web.Security.SqlMembershipProvider.GetUser(String username, Boolean userIsOnline) +1169
   System.Web.Security.Membership.GetUser(String username, Boolean userIsOnline) +63
   System.Web.Security.Membership.GetUser() +19
   _Default.LoadLeadOverview() in \\file1\default.aspx.vb:169
   _Default.Page_Load(Object sender, EventArgs e) in \\file1\default.aspx.vb:30
   System.Web.UI.Control.OnLoad(EventArgs e) +91
   System.Web.UI.Control.LoadRecursive() +74
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207

我环顾四周,发现其他人有同样的问题,但没有解决方案。任何想法都会受到欢迎。

4

2 回答 2

1

虽然我没有做任何事情来专门解决这个问题,但我已经有几周没有看到它了。回想起来,我同时在多个浏览器中测试该网站,使用相同的帐户,登录和退出很多,这似乎就是问题出现的时候。现在所有的 CSS 和其他跨浏览器的东西都已经解决了,我没有那么频繁地使用多浏览器,也不是同时使用,这似乎很好。

于 2011-05-18T08:26:16.713 回答
0

您的某些用户是否有可能将所有数字作为其用户名?可能是自动类型在途中某处装箱错误。

于 2011-04-15T12:52:56.057 回答