Brad's profileSharePoint BlogPhotosBlogLists Tools Help

Blog


    August 24

    w00t! A supported way of adding and removing themes from a Web Application!

    One thing that's always bothered me about theming SharePoint is that essentially you are modifying system files. While this is unsupported, it's the accepted practice – Heck, the theming Queen herself, Heather Solomon takes you step by step through doing it this way… until now :)

    Robin Meure from Zevenseas has come up with a new Central Admin app page that allows you to select a Web Application and essentially "Nominate" the themes you want to be made available to the site collections within the Web Application. You can also add New Themes without modifying the spthemes.xml file (that we all know and love) – From robin's blog post:

    The only thing you have to do is add the Theme to the THEMES folder and add your own custom SPThemes.XML somewhere in the 12 hive (a folder in the FEATURES folder could be a good example) and add this path to my solution and you’re done!

    You can download the compiled code from here, and see the blog article with usage instructions here.

    Thanks Robin!

    August 17

    Talking about SharePoint in Plain English

      This is a good video to show at the start of a training course on using SharePoint.

    SharePoint in Plain English

    This is a short video that explains in simple terms what SharePoint is, and why/how people use it. - Click here - SharePoint in Plain English 

    August 13

    Site dedicated to SharePoint and Reporting services integration

    Just found this site which is dedicated to SharePoint and Reporting Services integration. A very useful resource in an area that has little available content - http://blogs.msdn.com/prash/default.aspx
     
    Thanks Prash! Keep it up...
    August 07

    Redirecting users to a File Share from within SharePoint

    Just a quick note - you can use a dash of JavaScript and a splash of HTML to redirect users to a UNC path on a file share. We had an issue recently where a user wanted to load 400MB of reference material onto a SharePoint team site. Instead of allowing this travesty to go ahead, I compromised and wrote up the following htm file that did what they wanted without filling my Site's space... It was data that was also being indexed by SharePoint on the file share, so it made sense to keep it there.
     
    <script type="text/javascript">
    <!--
    window.location = "file://<Server Name>/DATA$/IT/Planning & Design Phase/2. Workstreams";
    //delay
    setTimeout("history.back()",2000);
    //-->
    </script>
     
    Save it as a .htm file.
     
    What this does is it opens a file manager window pointing to your UNC path, then after 2 seconds goes back in history on your browser (otherwise the users see a white page and don't know what to do...).
    B
    August 05

    "Error: Class not registered" when trying to start WSS Search

    Had a puzzling error recently where I was trying to set up a new farm. Single WFE, Separate SQL Server, simple config.

    So I installed MOSS 2007, then SP 2 for WSS and MOSS. Everything went fine until I started to run through my configuration process – Every time I tried to start the WSS Search Service on the Windows 2003 R2 server I was installing onto, it would come up and say

    Error: Class Not Registered

    Like most of the alerts that appear in MOSS, this too was incredibly helpful and told me exactly what I needed. So… here's what I tried:

    Check the ULS logs – Nothing in there saying that "Driver nnnnn is not registered" or something that would have been useful, just garbage

    0 Unassigned Initialize New Project: Search called  - File:d:\office\source\search\search\gather\server\gatherobj.cxx Line:653
    0 Unassigned Initialize New Project, Remove: Search - File:d:\office\source\search\search\gather\server\gatherobj.cxx Line:739
    0 Monitorable CContentSourceCollection::Init in m_pScheduler.CoCreateInstance, Error is 0x80040154 - File:d:\office\source\search\search\gather\server\contentsource.cxx Line:1287
    0 Monitorable <Exception><HR>0x80040154</HR><eip>00000000601BE7B0</eip><module>d:\office\source\search\search\gather\server\contentsource.cxx</module><line>1288</line></Exception>
    0 Monitorable <Exception><HR>0x80040154</HR><eip>00000000601E29D3</eip><module>d:\office\source\search\search\gather\server\gatherobj.cxx</module><line>837</line></Exception>
    0 Unassigned Leaving Initialize New Project: Search ; hr=0x80040154  - File:d:\office\source\search\search\gather\server\gatherobj.cxx Line:954
    0 Monitorable <Exception><HR>0x80040154</HR><eip>0000000060107B50</eip><module>d:\office\source\search\search\gather\gthrsvc\cgatherprj.cxx</module><line>690</line></Exception>
    0 Monitorable CGatherPrjCollection::AddRecoverOptional: Failed in :pProject->InitializeNew, Error is 0x80040154 - File:d:\office\source\search\search\gather\gthrsvc\cgatherprj.cxx Line:3712
    8u6i High     Application '544760de-b60e-4da7-aea3-b02d6881ae9b': Class not registered  . Failed while configuring the gatherer application with an exception. Attempting to clean up... - System.Runtime.InteropServices.COMException (0x80040154): Class not registered       at
    0 Monitorable <Exception><HR>0x80070002</HR><eip>0000000000A9369B</eip><module>d:\office\source\search\ytrip\tripoli\query\isreg.cxx</module><line>825</line></Exception>
    8wsw High     Now terminating ULS (mssearch.exe, onetnative.dll)
    8wsv High     ULS Init Completed (mssearch.exe, onetnative.dll)
    8dw7 High     The call to SPSearchServiceInstance.Provision (server 'AUMLC52DIA46') failed. Setting back to previous status 'Disabled'. System.Runtime.InteropServices.COMException (0x80040154): Class not registered       at Microsoft.SharePoint.Search.Administration.MSSITLB
    8dw7 High     ...PSearchServiceInstance.Synchronize(Boolean installGathererApplication)     at Microsoft.SharePoint.Search.Administration.SPSearchServiceInstance.Provision()     at Microsoft.SharePoint.Search.Internal.UI.SPSearchServiceInstanceSettings.BtnSubmit_Click(Objec
    8xqz Medium   Updating SPPersistedObject SPSearchServiceInstance Parent=SPServer Name=AUMLC52DIA46. Version: 3105 Ensure: 0, HashCode: 66070359, Id: 53538cac-1888-446d-88ce-38a2106549e1, Stack:    at Microsoft.SharePoint.Administration.SPPersistedObject.Update()     at Micr
    8xqz Medium   ...ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)     at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)     at System.Web.UI.Page.ProcessRequest()
    8xqz Medium   ...t context, AsyncCallback cb, Object extraData)     at System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)     at System.Web.HttpRuntime.ProcessRequestNoDemand(HttpWorkerRequest wr)     at System.Web.Hosting.ISAPIRuntime.ProcessRequest(IntPtr
    8inc Medium   In SSOService::Synch(), sso database conn string:
    8u3j High     Registry key value {SearchThrottled} was not found under registry hive {Software\Microsoft\Office Server\12.0}. Assuming search sku is not throttled.
    0 Medium   Entering MRU trim routine.
    0 Medium   Initial table size: 27232355 in 136 entries
    0 Medium   Final table size: 27232355 in 136 entries
    0 Medium   Exiting MRU trim routine.

    So, maybe the installation didn't go well? I decided to discount that as an option after the third attempt with no change.

    Maybe it was because I was setting the Search Index to be on D drive prior to enabling search (and MS had hard-coded the default search index path in there as part of the deployment script)? Tried fixing that too, nothing changed.

    Maybe I'd found a new bug in SP2 (I was applying SP2 before configuring the farm)? It turned out that I was not correct there either.

    Google had lots of hits, most of which related to MS CMS or .NET Framework development.

    Then I thought… What if this search service account does not have enough disk access rights based on local privileges? Sure enough, as soon as I added the account to the local Admin group it all went fine. So I tried to refine my search on Google and came up with this little beauty - http://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/0cca4e8b-eac0-4c27-9bc2-0e574c8094ad – the response from Microsoft was: Give the Search account more rights. Not what to, or why, or what level of rights… just "More". Sweet!

    Now I know what it is, I can use this information about the mandatory security required to narrow down the issue – MOSS http://technet.microsoft.com/en-us/library/cc721637.aspx – WSS 3 http://technet.microsoft.com/en-us/library/cc721631.aspx.

    What's that Roger? Oh, it's a development environment? Well, at least I've got a starting point the next time this issue comes up :)

    B