We have been using WorkControl since November 2008, and are still currently using whatever version from that period. We haven't upgraded.
Today we imported our 275,000 users -- after that the page that uses the WC module would not load.
After doing a SQL trace, we found that SecurityRoles.ascx.vb has code that calls 6 SP's for every user in the aspnet membership tables.
The code is the DataBind() call at line 479. Here is the actual method.
Public
Overrides Sub DataBind()MyBase.DataBind()'this needs to execute always to the client script code is registred in InvokePopupCal cmdEffectiveCalendar.NavigateUrl = DotNetNuke.Common.Utilities.Calendar.InvokePopupCal(txtEffectiveDate) cmdExpiryCalendar.NavigateUrl = DotNetNuke.Common.Utilities.Calendar.InvokePopupCal(txtExpiryDate) cmdExpiryCalendar.Text = calendarText cmdEffectiveCalendar.Text = calendarText Dim localizedCalendarText As String = Localization.GetString("Calendar")Dim calendarText As String = "<img src='" + ResolveUrl("~/images/calendar.png") + "' border='0' alt='" + localizedCalendarText + "'> " + localizedCalendarText'Localize Headers Localization.LocalizeDataGrid(grdUserRoles, Me.LocalResourceFile)'Bind the role data to the datalist BindData() BindGrid() End Sub
cmdEffectiveCalendar.NavigateUrl = DotNetNuke.Common.Utilities.Calendar.InvokePopupCal(txtEffectiveDate)
cmdExpiryCalendar.NavigateUrl = DotNetNuke.Common.Utilities.Calendar.InvokePopupCal(txtExpiryDate)
cmdExpiryCalendar.Text = calendarText
cmdEffectiveCalendar.Text = calendarText
Localization.LocalizeDataGrid(grdUserRoles,
BindData()
BindGrid()
We don't actually use the security roles feature, so we commented it out and have kept on going. However, I don't know if it was still using that same code or if there are others who have used this module that may be having this issue. After 12,000 users we noticed it slowed (75,000 sp calls each time).