November 28, 2007

MOSS: BlobCache not working

Problem:
When enabling blobCache, the following interesting things occur:
  1. Access Denied errors to blobCache folder are reported in Application Log:

    An error occured in the blob cache. The exception message was 'Access to the path 'D:\BLOBCACHE\988970710\\STYLE LIBRARY\IMAGES' is denied.'.

  2. Your custom stylesheets stop working. You can see your stylesheet in blobCache folder but the content of that file is something totally different from your stylesheet.
  3. Some images are displayed, most of them are not, of some images you can only see half.

Workarounds:

According to MS support:

"...there may be a fix being worked on to resolve this type of issue..."

and

"The first is to set 'AllowUnsafeUpdates' However the information covering this is vague and further research has shown that this change will cause a security risk by allowing cross site scripting.

The second workaround is quite simple to apply.

...

For this workaround all you should need to do is add 'NT AUTHORITY\authenticated users' to the site. From my tests it appears that you can add 'NT AUTHORITY\authenticated users' to any group and you can even remove all permissions from 'NT AUTHORITY\authenticated users' and it will still work as a workaround."


Second one was not applicable in my case as I already had the group on the site. Working workaround in my case was that I Checked the image OUT with SharePoint Designer, and Checked it back IN (without doing anything else) and Published it. It started to work immediately. As soon as I run the "Reset to Site Definition" on the image it breaks again.

Solutions:

  1. Set Modify privileges to your blobCache folder for IIS_WPG user group
  2. Unknown. Please try the second or third workaround.
  3. Office SharePoint Server 2007 hotfix package that is dated April 30, 2009 seems to contain fix for this, as it says in the hotfix description: After a reghost operation (Reghost.aspx) on a publishing Web, all files that have been customized at least once will have a hardcoded size of 200 bytes in the alldocs table after these files are restored to the original versions. This causes Blobcache to save only the first 200 bytes of the affected files to the cache. This behavior causes invalid images, .css files, and corrupt .js files served to visitors. The Blobcache reset is not enough. You must modify the files to have the correct size information in the alldocs table.

November 27, 2007

MOSS: Unknown error on Central Admin

Problem:
The front page of the Central Admin site works, but clicking on any link on the page gives "Unknown Error" (just black text on white background).

Workaround:
Reinstall MOSS and hope that it won't break again. Don't waste your time fiddling with Configuration Wizard, it won't do any good.

Ok, you might find the cause of the error by disabling custom error messages on the site.

Solution:
Many, depending on the error.

November 16, 2007

MOSS: One or more errors deploying administration application pool credentials.

Problem:
When trying to change passwords for Central Administration and Timer service according to Technet instructions you get error:

One or more errors deploying administration application pool credentials. Please check the application event log and fix manually. The path specified cannot be used at this time. (Exception from HRESULT: 0x80070094)


Thoughts:
Surprisingly the application event log is as helpful as always when it comes to MOSS errors as it says:

---------
Application Server Administration job failed for service instance Microsoft.Office.Server.Search.Administration.SearchAdminSharedWebServiceInstance (a1356919-7519-4867-a715-6f7bbcb02d2b).

Reason: The path specified cannot be used at this time. (Exception from HRESULT: 0x80070094)

Techinal Support Details:
System.Runtime.InteropServices.COMException (0x80070094): The path specified cannot be used at this time. (Exception from HRESULT: 0x80070094)
at System.DirectoryServices.DirectoryEntry.CommitChanges()
at Microsoft.SharePoint.Metabase.MetabaseObject.Update()
at Microsoft.SharePoint.Administration.SPProvisioningAssistant.ApplyIisVirtualDirectorySettings(VirtualDirectory virtualDirectory, String path, AccessFlags accessFlags, String applicationName, String applicationPoolId, String[] scriptMaps)
at Microsoft.SharePoint.Administration.SPProvisioningAssistant.ProvisionIisRootVirtualDirectory(WebSite webSite, String path, AccessFlags accessFlags, String applicationName, String applicationPoolId, String[] scriptMaps)
at Microsoft.SharePoint.Administration.SPProvisioningAssistant.ProvisionIisWebSite(String serverComment, String[] serverBindings, String[] secureBindings, AuthenticationMethods authenticationMethods, String[] authenticationProviders, String path, AccessFlags accessFlags, String applicationName, String applicationPoolId, String[] scriptMaps, String sslCertificateSubjectName)
at Microsoft.SharePoint.Administration.SPMetabaseManager.ProvisionIisWebSite(String serverComment, String[] serverBindings, String[] secureBindings, Int32 authenticationMethods, String[] authenticationProviders, String path, Int32 accessFlags, String applicationName, String applicationPoolId, String[] scriptMaps, String sslCertificateSubjectName)
at Microsoft.Office.Server.Administration.SharedWebServiceInstance.Synchronize()
at Microsoft.Office.Server.Administration.ApplicationServerJob.ProvisionLocalSharedServiceInstances(Boolean isAdministrationServiceJob)

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
---------

If you open Internet Information Services (IIS) Manager you will probably also see pretty much nothing, just empty tree with empty Internet Information Services node and nothing under it. This is tightly related to the problem as if you look closely the error in the application event log, you see that the error occurs at ApplyIisVirtualDirectorySettings. If there is no Virtual Directory to apply settings to, no wonder an error occurs. Maybe the application log event was a bit useful after all.

Workaround:
Restart IIS 6.0, or you restart the process that uses the IIS ADSI provider.

Solution:
There is a hotfix KB946517 for this issue.