"Cannot complete this action" error when more than 3000 FBA roles are assigned to SharePoint groups

Symptoms

After you add a new forms-based authentication role or a windows security group to a Microsoft Windows SharePoint Services 3.0 web site or a SharePoint group, users accessing the web site receive an error message that is similar to the following:

Cannot complete this action.
Please try again.

In the case where you perform an IISReset operation the symptom does not occur until a new role or windows group is added to a SharePoint group or the web site. Furthermore you can see similar entries in the ULS logs of the servers:

DATE/TIME  w3wp.exe (0x26E0)  0x2844  Windows SharePoint Services
General  8kh7  High
Cannot complete this action.  Please try again.      

DATE/TIME  w3wp.exe (0x26E0)  0x2844  Windows SharePoint Services General  8nca  Verbose Application error when access /_layouts/checkout.aspx, Error=Cannot complete this action.  Please try again.   at Microsoft.SharePoint.Library.SPRequestInternalClass.OpenWebInternal(String bstrUrl, Guid& pguidID, String& pbstrRequestAccessEmail, UInt32& pwebVersion, String& pbstrServerRelativeUrl, UInt32& pnLanguage, UInt32& pnLocale, String& pbstrDefaultTheme, String& pbstrDefaultThemeCSSUrl, String& pbstrAlternateCSSUrl, String& pbstrCustomizedCssFileList, String& pbstrCustomJSUrl, String& pbstrAlternateHeaderUrl, String& pbstrMasterUrl, String& pbstrCustomMasterUrl, String& pbstrSiteLogoUrl, String& pbstrSiteLogoDescription, Object& pvarUser, Boolean& pvarIsAuditor, Int32& plSiteFlags)     at Microsoft.SharePoint.Library.SPRequest.OpenWebInternal(String bstrUrl, Guid& pguidID, String& p...  

Cause

The in-memory security cache manager runs out of free space. It has a maximum of 204800 bytes by default to store external group identifiers and SharePoint group membership information to speed up group membership checks. When the total number of FBA Roles and windows groups used in the site collection increases above approx 3000 the cached information will exceed the allocated memory and security manager will prevent all SharePoint related operations.

Resolution

Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:

322756 How to back up and restore the registry in Windows.
  1. Click Start, click Run, type regedit, and then click OK
  2. In Registry Editor, locate and then click the following registry key:

    For WSS 3.0 / MOSS 2007:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\

    For SharePoint 2010:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\14.0\

    For SharePoint 2013:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\15.0\
  3. Right-click 12.0, point to New, and then click Key
  4. Type SecurityCacheOptions, and then press ENTER
  5. Right-click SecurityCacheOptions, point to New, and then click DWORD value
  6. Type SecurityCacheMemoryAllowed, and then press ENTER
  7. Right-click SecurityCacheMemoryAllowed, and then click Modify
  8. In the Value data box, change the Base to decimal, type the value 2, and then click OK
  9. Quit the Registry Editor, and then restart the IIS Administration service
Note The recommended value of SecurityCacheMemoryAllowed is 20 for SharePoint 2010 and SharePoint 2013. This value might differ depending on the environment so that you have to adjust the value based on your circumstance.

More Information

SecurityCacheMemoryAllowed setting is a local setting for the server, you have to repeat the registry key setup on all servers in your farm with SharePoint roles running on them, you do not need to add this key on your dedicated SQL server. There is one in-memory security cache per web application in the worker process during runtime therefore changing this value will not cause significant memory usage increase. The value 2 means 2 Megabytes which is enough for about 20000 FBA roles or windows groups, each FBA role or windows group uses about 100 bytes from the cache.
Властивості

Ідентифікатор статті: 3162762 – останній перегляд: 18 трав. 2016 р. – виправлення: 1

Зворотний зв’язок