我有一个与ASP.NET成员身份和表单身份验证相关的问题。我一直在寻找解决方案很长时间(包括StackOverflow.com),但无法找到与我的方案有关的解决方案。请帮我。
我在应用程序中使用ASP.NET成员身份和表单身份验证,问题是在测试应用程序的时间超过30分钟,
出现以下错误: -
1)从池中获得连接之前经过的超时时间。这可能是因为所有池连接都在使用中并且达到了最大池大小。
2)会话未过期,并且不会重定向到“登录”页面。
3)会话值几次变为空。
该应用程序也在生产中,但客户尚未报告上述任何此类问题。
请在下面找到Web.config设置: -
<sessionState timeout="30" mode="InProc">
</sessionState>
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
<providers>
<clear/>
<add name="SqlProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="DBSQLServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" passwordFormat="Hashed" applicationName="/ApplicationPortal"/>
</providers>
</membership>
<add name="DBSQLServer" connectionString="Data Source=SERVER-NAME\SQLEXPRESS2008;Initial Catalog=DB-Name;Max Pool Size=100;Trusted_Connection=True;" providerName="System.Data.SqlClient"/>
不要忘记这一部分: -
<authentication mode="Forms">
<forms loginUrl="~/Login.aspx" defaultUrl="~/Login.aspx" protection="All" timeout="30">
</forms>
</authentication>
虽然几乎没有关闭的连接,但现在所有的连接都被妥善处理掉了。
我找到了某个地方,通过关闭DataReaders,这将得到解决,但由于我已经解决了所有连接,所以如果DataReaders也会产生这种影响
在我的场景中没有关闭/处理?
我还想知道哪些可能的问题同时导致这两个错误,以及如何解决这两个问题。
在许多页面中也使用了内联查询。
答案 0 :(得分:0)
这听起来像是一个糟糕的设计。