<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-23320284</id><updated>2011-11-22T17:18:02.487+11:00</updated><category term='SharePoint'/><category term='MOSS'/><category term='2010'/><category term='Upgrade'/><title type='text'>MOSS Heroes</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>48</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-23320284.post-4190584235608593970</id><published>2011-07-24T12:58:00.002+10:00</published><updated>2011-07-24T13:16:16.917+10:00</updated><title type='text'>SharePoint Search Exception: The server did not provide a meaningful reply</title><content type='html'>Recently I had to configure search sometime after the initial build, which was done using AutoSPInstaller. To ensure consistency of approach, I created a slightly modified version of AutoSPInstallerMain.ps1 and also XML AutoSPInstallerInput files. The only real difference in the XML file was that I was instructing AutoSPInstaller to provision search, and also that I was instructing it to not provision Central Admin (as this was already provisioned and I have experienced the script failing when CA had already been created). The main difference in the AutoSPInstallerMain.ps1 was that I commented out a lot of the entries in the Setup-Services function (i.e. to only run StartSearchQueryAndSiteSettingsService and CreateEnterpriseSearchServiceApp). &lt;br /&gt;&lt;br /&gt;Shortly after the installation/configuration of Search, users were experiencing a correlation exception when performing searches. The ULS log returned the error 'Internal server error exception: System.ServiceModel.CommunicationException: The server did not provide a meaningful reply; this might be caused by a contract mismatch, a premature session shutdown or an internal server error.'. Subsequent messages also included 'A runtime exception was detected. Details follow. Message: Thread was being aborted'.&lt;br /&gt;&lt;br /&gt;To fix this issue I had to do the following:&lt;br /&gt;1) On each SharePoint Server, modify the permissions to the C:\Windows\Temp directory to ensure that the WSS_WPG group had both read and write access (by default after the Search installation, this group only had read access)&lt;br /&gt;2) Restart the 'SharePoint Server Search 14' search on each server.&lt;br /&gt;&lt;br /&gt;Once this was done, search began to work. Hope this helps someone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-4190584235608593970?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/4190584235608593970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=4190584235608593970' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/4190584235608593970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/4190584235608593970'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2011/07/sharepoint-search-exception-server-did.html' title='SharePoint Search Exception: The server did not provide a meaningful reply'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-2985006650687703083</id><published>2011-05-07T23:00:00.002+10:00</published><updated>2011-05-07T23:16:25.565+10:00</updated><title type='text'>Upgrading a Custom Search Results XSLT from 2007 to 2010</title><content type='html'>Whilst upgrading a public web site that I had previously created in SharePoint 2007, during testing I noticed this strange number appearing at the end of my upgraded search results page. After the last result I was seeing a number like 68050. This number changed as I performed more searches. &lt;br /&gt;I hadn't touched my custom search results XSLT at all during the upgrade, so I was wondering why this number started appearing. To troubleshoot, I first edited the search results page and changed the XSLT so that I could see the Search Results XML. The XSLT looked like:&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&amp;gt;&lt;br /&gt;&amp;lt;xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/&amp;gt;&lt;br /&gt;&amp;lt;xsl:template match="/"&amp;gt;&lt;br /&gt;&amp;lt;xmp&amp;gt;&amp;lt;xsl:copy-of select="*"/&amp;gt;&amp;lt;/xmp&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;&lt;br /&gt;This revealed to me 2 new elements right before the end of the &amp;lt;/all_results&amp;gt; tag. The extra elements were 'totalresults' and 'numberofresults'.&lt;br /&gt;&lt;br /&gt;As SharePoint 2010 now uses Federated Search Locations with custom XSLT allocated to each location, I decided to look to see what the OOB 'Local Search Results' location was doing. Turns out that it now includes a couple of extra XSLT templates:&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:template match="TotalResults"&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&amp;lt;xsl:template match="NumberOfResults"&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&lt;br /&gt;So I added these to extra XSLT templates into my custom XSLT and voila! No more strange number at the end of my search results.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-2985006650687703083?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/2985006650687703083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=2985006650687703083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/2985006650687703083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/2985006650687703083'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2011/05/upgrading-custom-search-results-xslt.html' title='Upgrading a Custom Search Results XSLT from 2007 to 2010'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-9099000798179375377</id><published>2011-04-20T21:44:00.002+10:00</published><updated>2011-04-20T21:56:08.303+10:00</updated><title type='text'>What to do when Content Deployment fails</title><content type='html'>I had to help out some guys from Accenture today with the setup of content deployment for a global SharePoint 2010 Internet site. Basically the first content deployment from the Authoring to Production environment didn't send across all of the published pages. As a result, settings like 'Welcome Page' were lost.  Further content deployments did not seem to help or fix what was previously broken. As SharePoint's content deployment is incremental by default (UI) I created a full content deployment job through PowerShell, but then we started seeing the error 'Unable to import folder _catalogs/masterpage/Forms/Page Layout. There is already an object with the Id &lt;Guid&gt; in the database from another site collection'.&lt;br /&gt;&lt;br /&gt;I used my friend Google and found &lt;a href="http://blog.qumsieh.ca/2010/07/26/content-deployment-errors-in-sharepoint-2010/"&gt;this&lt;/a&gt;, which helped me solve the problem.&lt;br /&gt;&lt;br /&gt;So it seems that information about what has been deployed before is not contained within the Authoring environment, but the destination environment, and deleting the site collection and re-creating it with an empty template doesn't help. In my case I deleted the web application entirely and re-created it through script. In the article, you can also detach and re-attach the content database through Central Admin.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-9099000798179375377?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/9099000798179375377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=9099000798179375377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/9099000798179375377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/9099000798179375377'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2011/04/what-to-do-when-content-deployment.html' title='What to do when Content Deployment fails'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-582446396899255368</id><published>2011-03-29T17:35:00.002+11:00</published><updated>2011-03-29T17:43:39.144+11:00</updated><title type='text'>Fixing the Health Analyzer SPTraceV4 issue</title><content type='html'>Within a SharePoint farm configuration (multiple servers), the SharePoint Health Analyzer will first complain that the SPTraceV4 account should not be running as a local service.  If you manually fix this by setting a domain account for the trace service (on each server) and restarting the service, sometimes you will still get the message 'Built-in accounts are used as application pool or service identities' within the Health Analyzer.  To fix this, do the following:&lt;br /&gt;&lt;br /&gt;1) Create the Trace Account (e.g. DOMAIN\svc-SP_TRC) as a managed account.&lt;br /&gt;2) Start up the SharePoint 2010 Management Shell in administrator mode&lt;br /&gt;3) Type the following Powershell script:&lt;br /&gt;&lt;br /&gt;$servicename = "SPTraceV4"&lt;br /&gt;$managedaccountname = "DOMAIN\svc-SP_TRC" &lt;br /&gt;$farm = Get-SPFarm&lt;br /&gt;$SPTimerv4 = $farm.Services | Where {$_.Name -eq $servicename}&lt;br /&gt;$SPTimerV4NewAccount = Get-SPManagedAccount $managedaccountname&lt;br /&gt;$SPTimerv4.ProcessIdentity.CurrentIdentityType = "SpecificUser"&lt;br /&gt;$SPTimerv4.ProcessIdentity.ManagedAccount = $SPTimerV4NewAccount&lt;br /&gt;$SPTimerv4.ProcessIdentity.Update()&lt;br /&gt;&lt;br /&gt;4) Goto to each server in the farm and restart the tracing service. Then do an IISRESET /noforce on each SharePoint Server&lt;br /&gt;5) Open up Central Administration, view the problem report and re-analyze the built-in accounts Health Analyzer message. &lt;br /&gt;6) Close the report message and refresh the page. The error should now be gone.&lt;br /&gt;7) If you have moved your logs to another (e.g. non-System) drive, on the directory where logs are to be written to, ensure that the nominated domain Trace account has full read/write permissions to it. You may have to restart the trace service and do an IISRESET again to notice that activity is now being written to the LOGS directory. Note that this approach also fixes the issue where you see lots of log file entries, all 0KB in length.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-582446396899255368?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/582446396899255368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=582446396899255368' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/582446396899255368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/582446396899255368'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2011/03/fixing-health-analyzer-sptracev4-issue.html' title='Fixing the Health Analyzer SPTraceV4 issue'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-2376210930069292300</id><published>2010-09-23T12:15:00.002+10:00</published><updated>2010-09-23T12:18:29.743+10:00</updated><title type='text'>SharePoint 2010 Branding Frustrations</title><content type='html'>This is not a solution to anything, just a place to vent my anger. I hate it how SharePoint 2010 page layouts go against basic CSS best practices.  The biggest issue for me at the moment is that the page layouts are rendered once again in nested tables and that nearly every web part zone has an ID of "_invisibleIfEmpty". Come on guys! It is not that hard!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-2376210930069292300?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/2376210930069292300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=2376210930069292300' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/2376210930069292300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/2376210930069292300'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2010/09/sharepoint-2010-branding-frustrations.html' title='SharePoint 2010 Branding Frustrations'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-8384637106494721253</id><published>2010-07-21T18:04:00.003+10:00</published><updated>2010-07-21T18:07:50.987+10:00</updated><title type='text'>Search Delegate Control in SharePoint 2010</title><content type='html'>Currently I am in the process of upgrading a SharePoint 2007 Internet site to 2010. One of the things that had me stuck initially was that after I did the upgrade and created a 2010 specific master page, my search delegate control was not showing up. I finally figured out that search delegate controls must have the Web Application feature scope in order to work. For my 2007 site, it was using Site Collection level scope.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-8384637106494721253?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/8384637106494721253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=8384637106494721253' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/8384637106494721253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/8384637106494721253'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2010/07/search-delegate-control-in-sharepoint.html' title='Search Delegate Control in SharePoint 2010'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-6974156678959284700</id><published>2010-05-24T15:05:00.002+10:00</published><updated>2010-05-24T15:13:19.180+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Prerequisite install gotchas when installing with no Internet connectivity</title><content type='html'>I am installing a SharePoint 2010 environment at the moment for a client where Internet access from the SharePoint box is blocked. I have found that even though I installed the compulsory prereq components, unless you install all of the prereqs, the prerequisite install function fails (e.g even though the speech components are optional, the prereq installer will fail if it doesn’t find them already installed).  A bigger issue is that Microsoft currently has 3 versions of the prerequisite item 'SQL 2008 R2 Analysis Services ADOMD.NET' available, where only the one at &lt;a href="http://go.microrosft.com/fwlink/?LinkID=160390" target="_blank"&gt;http://go.microrosft.com/fwlink/?LinkID=160390&lt;/a&gt; will work because of the registry settings it makes (which the prereq installer looks for). The correct version of SQLSERVER2008_ASADOMD10.msi is 6924KB.  The versions &lt;strong&gt;that don’t work&lt;/strong&gt; are &lt;a href="http://go.microsoft.com/fwlink/?LinkID=188442&amp;clcid=0x409" target="_blank"&gt;http://go.microsoft.com/fwlink/?LinkID=188442&amp;clcid=0x409&lt;/a&gt; (SQL 2008 R2, which is 7099KB) or  &lt;a href="http://go.microsoft.com/fwlink/?LinkId=130651" target="_blank"&gt;http://go.microsoft.com/fwlink/?LinkId=130651&lt;/a&gt; (SQL 2008, which is 4416KB).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-6974156678959284700?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/6974156678959284700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=6974156678959284700' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6974156678959284700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6974156678959284700'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2010/05/prerequisite-install-gotchas-when.html' title='Prerequisite install gotchas when installing with no Internet connectivity'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-4634274418351249370</id><published>2009-05-28T15:43:00.002+10:00</published><updated>2009-05-28T15:53:32.076+10:00</updated><title type='text'>Performing Long Running Tasks in SharePoint</title><content type='html'>Occasionally you may have a custom action that takes a while to run. On one of my recent projects we had just this need. Basically we wanted to convert an ordinary out of the box document library into a 'Projects' Document library. This involved setting the properties of the library (e.g. versioning, content types, enforce checkout etc), adding new content types to the library, setting up workflows for the library and applying event handlers.&lt;br /&gt;The way that we did this was to create an Application page (under layouts), which got called by the custom action.  Within the OnLoad of this page, we had the following:&lt;br /&gt;&lt;br /&gt;                using (SPLongOperation operation = new SPLongOperation(this.Page))&lt;br /&gt;                {&lt;br /&gt;                    try&lt;br /&gt;                    {&lt;br /&gt;                        operation.LeadingHTML = "Convert to Project Documents library";&lt;br /&gt;                        operation.TrailingHTML = "Please wait while your document library is being prepared for project use.";&lt;br /&gt;                        operation.Begin();&lt;br /&gt;&lt;br /&gt;                        // your code goes here&lt;br /&gt;&lt;br /&gt;                        operation.End(string.Format("{0}&amp;ConversionStatus={1}", this.CurrentRequestUrlAndQuery, FormSubmitStatus.Success.ToString()));&lt;br /&gt;                    }&lt;br /&gt;                    catch (Exception ex)&lt;br /&gt;                    {&lt;br /&gt;                        // record the error&lt;br /&gt;                        operation.End(string.Format("{0}&amp;ConversionStatus={1}", this.CurrentRequestUrlAndQuery, FormSubmitStatus.Fail.ToString()));&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;How easy is that?  SharePoint Rocks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-4634274418351249370?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/4634274418351249370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=4634274418351249370' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/4634274418351249370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/4634274418351249370'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2009/05/performing-long-running-tasks-in.html' title='Performing Long Running Tasks in SharePoint'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-6042267714960311279</id><published>2009-05-28T14:10:00.000+10:00</published><updated>2009-05-28T14:50:57.210+10:00</updated><title type='text'>Creating SharePoint Timer Jobs</title><content type='html'>In my current project, I have been developing a bunch of functionality around project space provisioning. As part of this, I decided that as there were a lot of activities to be performed when creating and configuring the new site, developing a SharePoint Timer Job was the best option.&lt;br /&gt;&lt;br /&gt;So lesson learnt #1 - You can't programmatically create a timer job from a site collection feature. The reason for this is that typically the application pool that looks after the site does not have permission to write to the configuration database. Creating a Timer Job requires you to be able to write the timer job definition into the configuration database, so if your application pool doesn't have the rights, then the creation of the job will fail.&lt;br /&gt;&lt;br /&gt;So basically you have to create a Web Application level feature (i.e. activated through Application Management tab of Central Admin) with a feature receiver method that creates the timer job. E.g.&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;Feature Id="2DEA0BA9-A8D1-4475-AD0B-8FE25EBF65A2"&lt;br /&gt;Title="Project Spaces Provisioning Timer Job"&lt;br /&gt;Description="Add timer job required for project space provisioning."&lt;br /&gt;Version="12.0.0.0"&lt;br /&gt;Hidden="FALSE"&lt;br /&gt;Scope="WebApplication"&lt;br /&gt;DefaultResourceFile="core"&lt;br /&gt;ReceiverAssembly="Collaboration.Projects, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d76123a549458435"&lt;br /&gt;ReceiverClass="Collaboration.Projects.FeatureCode.ProjectProvisioningTimerJob"&lt;br /&gt;xmlns="http://schemas.microsoft.com/sharepoint/"&amp;gt;&lt;br /&gt;&amp;lt;elementmanifests&amp;gt;&lt;br /&gt;&amp;lt;/feature&amp;gt;&lt;br /&gt;&lt;br /&gt;Creating the timer job in code is actually quite simple. Below is the feature activation/deactivation code:&lt;br /&gt;&lt;br /&gt;using Microsoft.SharePoint;&lt;br /&gt;using Microsoft.SharePoint.Administration;&lt;br /&gt;using Collaboration.Projects.Provisioning;&lt;br /&gt;namespace Collaboration.Projects.FeatureCode&lt;br /&gt;{&lt;br /&gt;  /// &lt;summary&gt;&lt;br /&gt;  /// Creates the timer job that runs the site creation process for confirmed requests in the provisioning request list&lt;br /&gt;  /// &lt;/summary&gt;&lt;br /&gt;  public class CollabProjectProvisioningTimerJob : SPFeatureReceiver&lt;br /&gt;  {&lt;br /&gt;    public override void FeatureActivated(SPFeatureReceiverProperties properties)&lt;br /&gt;    {&lt;br /&gt;      SPWebApplication application = properties.Feature.Parent as SPWebApplication;&lt;br /&gt;      DeleteProvisioningJob(application);&lt;br /&gt;      // install the job&lt;br /&gt;      ProjectSpaceCreationTimerJob provisioningJob = new ProjectSpaceCreationTimerJob(application);&lt;br /&gt;      SPMinuteSchedule schedule = new SPMinuteSchedule() { BeginSecond = 0, EndSecond = 59, Interval = 30 };&lt;br /&gt;      provisioningJob.Schedule = schedule;&lt;br /&gt;      provisioningJob.Update();&lt;br /&gt;    }&lt;br /&gt;    public override void FeatureDeactivating(SPFeatureReceiverProperties properties)&lt;br /&gt;    {&lt;br /&gt;      DeleteProvisioningJob(properties.Feature.Parent as SPWebApplication);&lt;br /&gt;    }&lt;br /&gt;    public override void FeatureInstalled(SPFeatureReceiverProperties properties)&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;    public override void FeatureUninstalling(SPFeatureReceiverProperties properties)&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;    /// &lt;summary&gt;&lt;br /&gt;    /// Deletes the provisioning job if it exists&lt;br /&gt;    /// &lt;/summary&gt;&lt;br /&gt;    /// &lt;param name="application"&gt;&lt;/param&gt;&lt;br /&gt;    private void DeleteProvisioningJob(SPWebApplication application)&lt;br /&gt;    {&lt;br /&gt;      foreach (SPJobDefinition job in application.JobDefinitions)&lt;br /&gt;      {&lt;br /&gt;        if (job.Name == ProjectSpaceConstants.ProvisioningJobName)&lt;br /&gt;          job.Delete();&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now the ProjectSpaceCreationTimerJob class just inherits from SPJobDefinition. Below is a code snippet (note that the Execute method is the actually code that gets executed when the job runs).&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Web;&lt;br /&gt;using Microsoft.SharePoint;&lt;br /&gt;using Microsoft.SharePoint.Administration;&lt;br /&gt;using Collaboration.Projects.Resources;&lt;br /&gt;using Collaboration.Provisioning;&lt;br /&gt;using Collaboration.Common;&lt;br /&gt;using System.Text;&lt;br /&gt;&lt;br /&gt;namespace Collaboration.Projects.Provisioning&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;public class ProjectSpaceCreationTimerJob : SPJobDefinition&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public ProjectSpaceCreationTimerJob() : base() { }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public ProjectSpaceCreationTimerJob(SPWebApplication web)&lt;br /&gt;: base(ProjectSpaceConstants.ProvisioningJobName, web, null, SPJobLockType.Job)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.Title = ProjectSpaceConstants.ProvisioningJobName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public override void Execute(Guid targetInstanceId)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// your code goes here&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;base.Execute(targetInstanceId);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Hope this helps. I've written it down here so that I remember it in the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-6042267714960311279?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/6042267714960311279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=6042267714960311279' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6042267714960311279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6042267714960311279'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2009/05/creating-sharepoint-timer-jobs.html' title='Creating SharePoint Timer Jobs'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-6143344341121512708</id><published>2008-11-06T10:41:00.000+11:00</published><updated>2008-11-06T10:50:24.044+11:00</updated><title type='text'>Access is denied. Check that the Default Content Access Account has access to this content.</title><content type='html'>I had the following error on an Extranet site that I setup recently:&lt;br /&gt;The start address &lt;&lt;a href="https://abc.def.com/"&gt;https://abc.def.com&lt;/a&gt;&gt; cannot be crawled.&lt;br /&gt;Access is denied. Check that the Default Content Access Account has access to this content, or add a crawl rule to crawl this content.   (0x80041205).&lt;br /&gt;&lt;br /&gt;I had read on other blogs that the trick was to login to the Index Server as the MOSS Search account, check that you can access the site, and verify the proxy/exclusions had been setup correctly.  This normally works, but it didn't for me this time. And it certainly wasn't permissions as the search account had full read access to the site through the Application Policy interface within Central Admin.&lt;br /&gt;&lt;br /&gt;In the end, I found that a registry change and a reboot of the server was required to fix it. See &lt;a href="http://support.microsoft.com/kb/896861"&gt;http://support.microsoft.com/kb/896861&lt;/a&gt;.  I used Method 1 (Disable loopback check) to fix the problem. That is:&lt;br /&gt;&lt;br /&gt;1. Click Start, click Run, type regedit, and then click OK.&lt;br /&gt;2. In Registry Editor, locate and then click the following registry key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa&lt;br /&gt;3. Right-click Lsa, point to New, and then click DWORD Value.&lt;br /&gt;4. Type DisableLoopbackCheck, and then press ENTER.&lt;br /&gt;5. Right-click DisableLoopbackCheck, and then click Modify.&lt;br /&gt;6. In the Value data box, type 1, and then click OK.&lt;br /&gt;7. Quit Registry Editor, and then restart your computer.&lt;br /&gt;&lt;br /&gt;I hope this helps. It frustrated the living daylights out of me at the time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-6143344341121512708?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/6143344341121512708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=6143344341121512708' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6143344341121512708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6143344341121512708'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2008/11/access-is-denied-check-that-default.html' title='Access is denied. Check that the Default Content Access Account has access to this content.'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-6030413429635788598</id><published>2008-04-28T10:12:00.000+10:00</published><updated>2008-04-28T10:17:54.051+10:00</updated><title type='text'>Fixing the Search Settings Forbidden (403) Error</title><content type='html'>Last week I installed hotfix 941653 and hotfix 950292 (post SP1) to a client site to fix the dreaded Error: 'length' is null or not an object that occurs with Office 2003 Standard edition and MOSS Content Types. Unfortunately, not only did the problem remain (i.e. the hotfix fixed nothing), but I started to get 403 (Forbidden) errors when I tried to navigate to Search Settings page. &lt;br /&gt;To fix this problem, I had to do the following:&lt;br /&gt;&lt;strong&gt;From the index server&lt;/strong&gt; (I've got a front-end web server and a backend index server, both 64 bit):&lt;br /&gt;&lt;strong&gt;stsadm -o search -action stop -f&lt;br /&gt;&lt;/strong&gt;then I did&lt;br /&gt;&lt;strong&gt;stsadm -o search -action start -role indexquery&lt;br /&gt;&lt;/strong&gt;then I did a:&lt;br /&gt;&lt;strong&gt;stsadm -o execadmsvcjobs&lt;br /&gt;&lt;/strong&gt;Then I went back to the &lt;strong&gt;front end web server&lt;/strong&gt;, navigated to the Shared Services Admin page, selected the SSP site, then from its context menu selected 'Edit Properties'. Then from the screen I reselected what the Index server was. After this, on the front end server I did a &lt;strong&gt;stsadm -o execadmsvcjobs&lt;/strong&gt;.  Then search started working again (but as the index was blown away, I had to do a full reindex).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-6030413429635788598?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/6030413429635788598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=6030413429635788598' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6030413429635788598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6030413429635788598'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2008/04/fixing-search-settings-forbidden-403.html' title='Fixing the Search Settings Forbidden (403) Error'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-6290573776052346988</id><published>2008-04-04T10:36:00.000+11:00</published><updated>2008-04-04T11:05:59.221+11:00</updated><title type='text'>Fiddler2 and Pipeboost are your friend!</title><content type='html'>To my surprise this week, one of the sites that I am helping with went live (deployed by the customer).  One of the comments from the customer was 'it is quite slow'. Well to help identify what was going on, I brought out my trusty friends - Fiddler2 and Pipeboost. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;color:#3366ff;"&gt;&lt;strong&gt;Fiddler2&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;Basically, Fiddler is an IE add-on that monitors what comes down the wire to the browser whenever you request a page.  In includes all the details about what types of files are downloaded (jpg, swf, css, js etc) and how long it takes.  It even provides a pie chart to show what file types are causing the biggest payload.  My first test on the site was with all of my cache cleared (so that I measure the performance of the first time visitor to the site). Yes it was definitely slow.  My second request was done without clearing the cache.  In this report however, it showed that although the flash files were being cached, All of the images stored in the SiteCollectionImages library were not. &lt;br /&gt;&lt;br /&gt;So Fiddler helped me to identify that the BlobCache had not been configured on the server.  This is a setting in the Web.Config file.  It helps IIS to store images that are stored in SharePoint (and therefore in the backend database) to the local file system. Thus making subsequent requests for those resources a whole lot quicker (because a SharePoint database request is not required).  The syntax for BlobCache is as follows:&lt;br /&gt;&lt;br /&gt;&lt;blobcache location="C:\blobCache" path="\.(gifjpgpngcssjsswf)$" max enabled="true" style="font-size:10;"&gt;&lt;br /&gt;&lt;span style="font-size:130%;color:#3366ff;"&gt;&lt;strong&gt;Pipeboost (&lt;/strong&gt;&lt;/span&gt;&lt;a href="http://www.pipeboost.com/"&gt;&lt;span style="font-size:130%;color:#3366ff;"&gt;&lt;strong&gt;www.pipeboost.com&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;&lt;span style="font-size:130%;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Pipeboost helped me to identify whether or not IIS Compression had been configured on the production server.  As most of you would know, browsers such as IE can handle compression.  There is a handshake that goes on between the server and the browser to see whether the browser supports compression.  If it does, then IIS compresses the contents (thus reducing the payload) and sends it to the browser, where it is decompressed and displayed to the user.  There are two types of content that can be compressed - Static (like images) and Dynamic (like ASPX pages). Static compressioncan compress the file as well as stores it in the Temporary Internet Files directory, so that it can be served up quicker next time. Dynamic waits for the ASPX to return its content, then it just sends that page compressed back to the browser (i.e. it doesn't store it in the Temporary Internet Files location).&lt;br /&gt;&lt;br /&gt;There is a great article at &lt;a href="http://www.dotnetjunkies.com/Article/16267D49-4C6E-4063-AB12-853761D31E66.dcik" target="_blank"&gt;http://www.dotnetjunkies.com/Article/16267D49-4C6E-4063-AB12-853761D31E66.dcik&lt;/a&gt; that explains how to setup IIS Compression.  At the end of this article, it talks about Pipeboost, which can tell you whether or not the payload returned from the web server is compressed (i.e. via IIS Compression).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-6290573776052346988?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/6290573776052346988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=6290573776052346988' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6290573776052346988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6290573776052346988'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2008/04/fiddler2-and-pipeboost-are-your-friend.html' title='Fiddler2 and Pipeboost are your friend!'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-7034800003386656950</id><published>2008-04-04T10:18:00.000+11:00</published><updated>2008-04-04T10:30:54.242+11:00</updated><title type='text'>Strange Behaviour when Editing a SharePoint Search Resuls Page</title><content type='html'>As part of the the work that I do with my own company (MS-Advantage), I get to work on a lot of interesting projects, as well as work with a lot of interesting partner/development companies.&lt;br /&gt;For example, currently I am doing some work on the side with a Graphic Design company who have been charged with developing the branding for a global web site.  I basically provide them with guidance on how to best use and develop with SharePoint, while they do the leg work of developing the master pages and page layouts.&lt;br /&gt;&lt;br /&gt;While I was working on the project yesterday, the customer indicated that the Search results page was returning sites and list information that they did not want to appear.  To resolve the issue, I went into the search results page, edited the core results web part to add an additional query to the results (Query2 and isdocument:1, which basically says 'only show pages or documents'). &lt;br /&gt;&lt;br /&gt;Well I checked in a draft version of the search results page and started to test that it worked.  As the results returned was exactly what I was after, I then published the page (so that it would get picked up in that night's content deployment job).  After publishing the page however, every time I navigated to the search results page (even without providing a search keyword), the search results that I had previously used while testing were still being displayed.  I tried to roll back to previous versions, but that didn't help.  In the end I had to open up the page in SharePoint Designer, AND TO MY HORROR SharePoint had injected the results HTML into my web page.  Once I deleted this and saved it, I was then able to re-publish the page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-7034800003386656950?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/7034800003386656950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=7034800003386656950' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/7034800003386656950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/7034800003386656950'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2008/04/strange-behaviour-when-editing.html' title='Strange Behaviour when Editing a SharePoint Search Resuls Page'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-4926745464713371087</id><published>2008-04-04T10:10:00.000+11:00</published><updated>2008-04-04T10:17:03.670+11:00</updated><title type='text'>SharePoint Deployment Guide and Checklist</title><content type='html'>While I was at the SharePoint Conference in Seattle, I attended a session on 10 Steps to Governance (presented by Brian Cook and Joel Olesen).  Just before the session started, Microsoft were handing out a little pocket guide called the SharePoint Deployment Guide and Checklist.  It contained lots of useful information about governance plans, deployment checklists and deployment team roles.&lt;br /&gt;&lt;br /&gt;When I showed it to a few guys I work with, they thought 'hey, where can I get a copy'.  Well, I found it online at &lt;a href="http://office.microsoft.com/download/afile.aspx?AssetID=AM102552101033"&gt;http://office.microsoft.com/download/afile.aspx?AssetID=AM102552101033&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-4926745464713371087?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/4926745464713371087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=4926745464713371087' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/4926745464713371087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/4926745464713371087'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2008/04/sharepoint-deployment-guide-and.html' title='SharePoint Deployment Guide and Checklist'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-6799923504207441703</id><published>2008-03-09T21:00:00.000+11:00</published><updated>2008-03-11T15:02:48.786+11:00</updated><title type='text'>SharePoint Conference catchup with Heather Solomon</title><content type='html'>While I was at the SharePoint Conference in Seattle, I caught up with Heather Solomon (SharePoint branding MVP) from SharePointExperts.com.&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://bp2.blogger.com/_oMfvCRTNAQc/R9O3UFulxJI/AAAAAAAAAAs/9InliIHH7r0/s1600-h/heathersolomon.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5175681952541688978" style="CURSOR: hand" alt="" src="http://bp2.blogger.com/_oMfvCRTNAQc/R9O3UFulxJI/AAAAAAAAAAs/9InliIHH7r0/s320/heathersolomon.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;Below are some of the tips and tricks that we discussed (and some of my own tips):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Explore using CSS to customize the OOTB navigation controls before you go out venturing on creating your own.&lt;/li&gt;&lt;li&gt;Incorporate the @import to include your CSS in your Master Pages. Heather's opinion is that you should only use the alternate CSS option to tweak particular areas.&lt;/li&gt;&lt;li&gt;Store your CSS and branding images on the web server. Images go in their own directory under 'Template\Images'. The CSS file should be stored inside a directory under 'Styles' (under the 12 hive).&lt;/li&gt;&lt;li&gt;Package your branding in Solution Package/Feature. Check out&lt;br /&gt;&lt;a href="http://codeplex.com/stsdev"&gt;http://codeplex.com/stsdev&lt;/a&gt; for a Visual Studio Project Template for this (developed by Ted Patterson and Andrew Connel)&lt;/li&gt;&lt;li&gt;On the development machine, turn off custom errors in the web.config (&lt;br /&gt;set Callstack = False. Set CustomErrors=Off)&lt;/li&gt;&lt;li&gt;Apart from using Alternate Stylesheets, Themes can also be used to help brand the Application.master template (remember you can't actually change the HTML structure though)&lt;/li&gt;&lt;li&gt;Meeting Workspaces do not pick up your custom master page. There is some special code in the meeting workspace master page that renders the multiple meeting navigation that you normally see on the left hand side. You need to create a separate masterpage for the meeting workspace, then create a feature stapling to the meeting workspace to change its default master page.&lt;/li&gt;&lt;li&gt;Blogs and Wikis use different styles, so be careful&lt;/li&gt;&lt;li&gt;Take advantage of contextual selectors (e.g. div#mydiv ms-SPLink {...} )&lt;/li&gt;&lt;li&gt;The word specificity (which I can never pronounce in meetings) basically means that a number is derived from the way in which an element is styled. Sometimes you see styles overriding others when you see things like class names sitting right next to the element. Think of the number as A-B-C. For each ID that you use, you add 1 to A. For every class you use, you add 1 to B. Then for a base class definintion, you add 1 to C. So p#largetext ul.mylist li has a specificity of 1-1-1 (or 111). If I just set a style on li (corresponding to a specificity of 1), the specificity with the highest number would be applied to the element.&lt;/li&gt;&lt;li&gt;Don't go crazy with classes. Use IDs more often and classes sparingly. That way in your CSS, you can use contextual selectors to define a style. E.g. div#mydiv table tr td a { font-family: Verdana }. In this example I haven't used classes at all. I am basically finding the element by starting at the ID level first.&lt;/li&gt;&lt;li&gt;Heather mentioned that in the past, she has seen SharePoint Designer take grouped styles (e.g. h1, h2, h3 ....) and separate them to h1 {} h2 {} etc (so adding more lines than what is necessary). Heather uses 'Top Style Pro 3.5' to author her CSS, but she hasn't tested opening up a CSS stored in the 'Style Library' areas (remember that she prefers to have the CSS stored on the web server).&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-6799923504207441703?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/6799923504207441703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=6799923504207441703' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6799923504207441703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6799923504207441703'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2008/03/sharepoint-conference-catchup-with.html' title='SharePoint Conference catchup with Heather Solomon'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_oMfvCRTNAQc/R9O3UFulxJI/AAAAAAAAAAs/9InliIHH7r0/s72-c/heathersolomon.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-7424370695926291009</id><published>2008-03-05T18:30:00.000+11:00</published><updated>2008-03-05T18:43:15.789+11:00</updated><title type='text'>Fab 40 Application Templates and Role-based My Site Templates Author</title><content type='html'>Tonight's SharePoint Conference's social evening was at the Museum of Flight in Seattle.  During the night, I managed to catchup with Bob Sutton, Senior Product Manager within the SharePoint product group.  After having a couple of drinks together (part of it on me unfortunately), we started to discuss the Application templates, and in particular the role-based My Site templates. How stupid did I feel when he said 'oh yeah, I wrote all of that!'.  So now when I have questions (particularly about the My Site templates) I can go directly to the source. Thanks Bob!&lt;br /&gt;&lt;br /&gt;I also got to meet Dave Page from Redmond Technology Partners, whose company was engaged by Microsoft to build the &lt;a href="http://sharepoint.microsoft.com/gearup"&gt;GearUp&lt;/a&gt; site, which is a site dedicated to providing IT professionals and business managers with timely resources and guidance through the SharePoint deployment cycle. It even includes an Internal Buzz Kit, which includes sample promotional emails, posters and PowerPoint slides - all vital pieces in the Communications Plan that all SharePoint projects should have (if you don't have one - get one. Otherwise your SharePoint project is likely to fail due to poor user adoption).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-7424370695926291009?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/7424370695926291009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=7424370695926291009' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/7424370695926291009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/7424370695926291009'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2008/03/fab-40-application-templates-and-role.html' title='Fab 40 Application Templates and Role-based My Site Templates Author'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-103516853459083455</id><published>2008-03-05T18:18:00.000+11:00</published><updated>2008-03-05T18:25:54.653+11:00</updated><title type='text'>Is that you Mike Fitzmaurice?</title><content type='html'>I nearly fell over tonight when I saw &lt;a href="http://blogs.msdn.com/mikefitz/"&gt;Mike Fitzmaurice&lt;/a&gt; (Microsoft Evangelist) for the first time in 12 months. He has lost about 40Kg and is shadow of the man he was before. Well done Mike!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-103516853459083455?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/103516853459083455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=103516853459083455' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/103516853459083455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/103516853459083455'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2008/03/is-that-you-mike-fitzmaurice.html' title='Is that you Mike Fitzmaurice?'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-1789419183698572523</id><published>2008-03-05T18:04:00.000+11:00</published><updated>2008-03-05T18:18:27.790+11:00</updated><title type='text'>A Possible Workaround with Content Types incorporating BDC lookups</title><content type='html'>I attended the session 'Creating Solutions with the Business Data Catalog' today at the SharePoint Conference, presented by &lt;a href="http://www.sharepointblogs.com/tbaginski/default.aspx"&gt;Todd Baginski&lt;/a&gt;. At the end of the session, I had an idea on how to get around this limitation with Content Types (i.e. that you can add a BDC column to a Content Type). When question time came, I stood up and asked Todd whether my theory might work. He thought it was a very good idea.&lt;br /&gt;So what is the idea?  Well, basically it is quite a simple process to query the values in the BDC. You just need to know the the SSP name (e.g. SharedServices1), the LobSystemInstanceName (which appears in the Application Definition XML file) and the Entity that you want to query (e.g. Customers).  Todd said that he will soon upload this sample code to his blog (I'm not much of a developer any more).  You then take this sample code and wrap it in a custom Field Control. The User Experience will be that when you select that you want to create a field of type BDC, you select your custom type, then provide the 3 parameters required (or even a 4th to provide filtering). At runtime, the field control queries the BDC and returns the values in a drop down list. Under the covers, you could even store the associated ID of the selected BDC item. This could (potentially) be used for communicating with other BDC web parts (e.g. BDC Item web part), or could be consumed by other field controls that provide filtering capability (say to a duplicate field control that perhaps takes a 4th parameter to filter the BDC results).   If you are a brave enough developer, give it a go and let me know how you go (I wouldn't mind a copy of the code).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-1789419183698572523?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/1789419183698572523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=1789419183698572523' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/1789419183698572523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/1789419183698572523'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2008/03/possible-workaround-with-content-types.html' title='A Possible Workaround with Content Types incorporating BDC lookups'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-1860063194659207614</id><published>2008-03-03T11:45:00.000+11:00</published><updated>2008-03-03T11:49:29.287+11:00</updated><title type='text'>I'm here at the MS SharePoint Conference in Seattle</title><content type='html'>As there wasn't going to be a SharePoint Conference in Australia this year, I decided to go this conference in Seattle, which focuses on Real-World SharePoint solutions. Apart from getting some war stories from other SharePoint Specialists, I'm looking forward to catching up with some world renowned MVP's and Arpan Shah from the Microsoft Product Team.  I'm scheduled to catch up with him at the Ask the Experts Lunch on Wednesday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-1860063194659207614?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/1860063194659207614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=1860063194659207614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/1860063194659207614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/1860063194659207614'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2008/03/im-here-at-ms-sharepoint-conference-in.html' title='I&apos;m here at the MS SharePoint Conference in Seattle'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-1196932046925750427</id><published>2007-11-26T09:08:00.000+11:00</published><updated>2007-11-26T09:32:08.304+11:00</updated><title type='text'>Migrating InfoPath forms over to MOSS</title><content type='html'>&lt;div&gt;Last week I had a customer that used InfoPath extensively for basic data capture. The forms themselves were quite basic. Most had a couple of data connections to SharePoint lists (for drop-down values), as well as the main Submit data connection. Modifying each of these forms involved migrating each of the lookup lists to the new SharePoint environment, creating the destination Forms Library to hold the submitted forms, modifying each of the data connections in InfoPath to point to these lists and libraries, and finally Publishing the form to the new location. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Of bigger concern was the fact that there were hundreds (if not thousands) of data files (i.e. .xml files containing submitted data). As you may or may not know, submitted InfoPath documents have a processing instruction at the top of the XML, which tells Windows that it is an InfoPath document, as well as where to get the InfoPath XSN template to load.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Fortunately, MOSS form libraries now have a new default view called 'Relink Documents'. By using this view, you can select each of the existing documents and relink them to the new template. Below is a screenshot:&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;a href="http://bp3.blogger.com/_oMfvCRTNAQc/R0n3Mn0GlrI/AAAAAAAAAAk/j46e5_knNLc/s1600-h/RelinkDocuments.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5136908646210770610" style="CURSOR: hand" height="111" alt="" src="http://bp3.blogger.com/_oMfvCRTNAQc/R0n3Mn0GlrI/AAAAAAAAAAk/j46e5_knNLc/s320/RelinkDocuments.jpg" width="345" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-1196932046925750427?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/1196932046925750427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=1196932046925750427' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/1196932046925750427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/1196932046925750427'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/11/migrating-infopath-forms-over-to-moss.html' title='Migrating InfoPath forms over to MOSS'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_oMfvCRTNAQc/R0n3Mn0GlrI/AAAAAAAAAAk/j46e5_knNLc/s72-c/RelinkDocuments.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-6688084819791754735</id><published>2007-11-26T08:56:00.000+11:00</published><updated>2007-11-26T09:08:08.706+11:00</updated><title type='text'>Discovered a new issue with SharePoint 2007 stsadm Export function</title><content type='html'>Last week I had to move some team sites from an upgraded site into a new MOSS site structure. Normally when using the stsadm export function I use the following syntax, which ensures that I move across all document versions, as well as maintain document 'modified by' type information.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;stsadm -o export -url &lt;/strong&gt;&lt;a href="http://moss_site/sites/projects/it_projects"&gt;&lt;strong&gt;http://moss_site/sites/projects/it_projects&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; -filename it_projects.dat -includeusersecurity -versions 4&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;But this kept on failing for this particular site.  On closer inspection of the export log I discovered that one document in the document library had &lt;strong&gt;151 versions&lt;/strong&gt;!! It was this document that was causing all of the problems.&lt;br /&gt;&lt;br /&gt;My solution was to just move across the latest version of the document instead, which has the syntax:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;stsadm -o export -url &lt;/strong&gt;&lt;a href="http://moss_site/sites/projects/it_projects"&gt;&lt;strong&gt;http://moss_site/sites/projects/it_projects&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; -filename it_projects.dat -includeusersecurity -versions 2&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Looking  back on it now, I could have also tried to delete previous versions, but this could have been a trial and error thing (because I don't know what the export limit actually is - 50 versions? 100 versions? Who knows?)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-6688084819791754735?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/6688084819791754735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=6688084819791754735' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6688084819791754735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6688084819791754735'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/11/discovered-new-issue-with-sharepoint.html' title='Discovered a new issue with SharePoint 2007 stsadm Export function'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-6396029182759472987</id><published>2007-10-25T17:13:00.000+10:00</published><updated>2007-10-25T17:20:06.174+10:00</updated><title type='text'>Implications of WSS/SPS 2003 sp3</title><content type='html'>Although most of the time I am working on MOSS related projects, one of my clients still requires my support with SPS 2003.  They had rebuilt the environment to be SPS sp2 on Windows Server 2003 service pack 2.  If you didn't already know, this combination breaks the 'Create Site' functionality (it hangs on the Add Link to Site section).  Anyway, last week I installed WSS/SPS service pack 3, which fortunately fixed this problem.  However, today I discovered that the Rich Text Editor within the Content Editor Web Part no longer works.  To fix this, you have to modify both ows.js and htmledit.aspx to include an additional JavaScript function called RenderActiveX. This function accepts a string, then just does a document.write(str) with it.  Simple fix really, but it should have been tested more thoroughly before it was released.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-6396029182759472987?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/6396029182759472987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=6396029182759472987' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6396029182759472987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6396029182759472987'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/10/implications-of-wsssps-2003-sp3.html' title='Implications of WSS/SPS 2003 sp3'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-3631294938479546117</id><published>2007-08-13T12:23:00.000+10:00</published><updated>2007-08-13T12:28:45.278+10:00</updated><title type='text'>Huge week at TechEd!</title><content type='html'>Well it was a massive week on the Gold Coast.  The highlights for me were:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Getting 100% on the MOSS configuration exam after only 2 hours of study at 5.30 in the morning.&lt;/li&gt;&lt;li&gt;The Superman ride at Movie World&lt;/li&gt;&lt;li&gt;Winning the Grand Prize!!!!&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I am still not entirely sure what I have won (they are shipping it to me this week). But I did see a new Palm phone in the the basket of goodies. Apparently it is supposed to be worth $20K - I hope it is not all t-shirts and caps!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-3631294938479546117?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/3631294938479546117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=3631294938479546117' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/3631294938479546117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/3631294938479546117'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/08/huge-week-at-teched.html' title='Huge week at TechEd!'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-6874942660673930442</id><published>2007-07-31T22:41:00.000+10:00</published><updated>2007-07-31T23:01:02.537+10:00</updated><title type='text'>Export/Import traps for young players</title><content type='html'>Often when you are upgrading or migrating content to a new MOSS site, you will inevitably use the 'STSADM -o export' and 'STSADM -o import' commands.  One of the 'traps' when using the export command is if the site you are exporting contains subsites, if you do not have access to that subsite (i.e. the subsite has not inherited permissions from its parent), then the subsite will not be exported (and hence will not exist after the import).&lt;br /&gt;&lt;br /&gt;The other thing to be wary of is the use of the -includeusersecurity switch.  If you do not use this switch in the export, and then again in the import, all content within the imported site will list &lt;strong&gt;you&lt;/strong&gt; as the author.  The downside in using this switch however is that all of the old security settings that existed in the exported site (e.g. WSS v2 Site Groups), will exist in the imported site, so you will need to do a cleanup afterwards.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-6874942660673930442?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/6874942660673930442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=6874942660673930442' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6874942660673930442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6874942660673930442'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/07/exportimport-traps-for-young-players.html' title='Export/Import traps for young players'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-8293220178824983251</id><published>2007-07-31T22:03:00.001+10:00</published><updated>2007-07-31T22:32:12.489+10:00</updated><title type='text'>Two steps forward - one step back</title><content type='html'>There is no doubting that MOSS contains a bunch of new features that people find useful.  But sometimes it astounds me that minor oversights have made it into the product.  My biggest bug-bears include:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;When you navigate to a document library that has folders, you will see that the navigation breadcrumb is updated, thus allowing you to move around quickly in the document library(which is good).  But drop that document library onto say the landing page, then the only way to navigate around the document library is to use the browser's back button.  In WSS v2/SPS 2003, the web part automatically included an up link. So many of my clients have asked 'where has the up arrow gone?'.  &lt;/li&gt;&lt;li&gt;Events Calendar - hmmmm...where to start?  OK, first of all there is no way to resize the control.  So many team sites today include some sort of shared calendar.  Dropping the web part onto the page (say in a standard two column layout), pushes the page out to the right, so people have to scroll.  The only way that I have gotten around this is to purchase a third party web part like Kwizcom. &lt;/li&gt;&lt;li&gt;Events Calendar again.  There is no way to get a reliable 'What's on today?' view.  First of all, the Start Time is not available in the Filter section within the view administration. The only way that I have gotten around this is to create a calculated field (e.g. Begin Time) that is equal to [Start Time] + 0.1, then create the view based on that calculated field.  The 0.1 addition is required to cater for all day events.  Without that, the event usually appears in the day before. But then comes the real problem - recurring events do not show up.  This is because the Start Time field is based on when the recurring event should be effective from, not the actual start time of the event.  The only way to get these events showing up (and you will love this one) is by editing each recurring event EVERY day, so that the Start Time changes to today (and hence shows up).&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Let's home that either third party web parts fill these gaps, or a Microsoft patch fixes it.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-8293220178824983251?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/8293220178824983251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=8293220178824983251' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/8293220178824983251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/8293220178824983251'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/07/two-steps-forward-one-step-back.html' title='Two steps forward - one step back'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-2009392110408877077</id><published>2007-07-29T22:54:00.000+10:00</published><updated>2007-07-31T19:37:58.134+10:00</updated><title type='text'>I've Been Busy</title><content type='html'>Sorry I haven't posted for a while. Since May I have been flat out working on MOSS projects, which hasn't left much time for writing.  I will pick up my game again after TechEd (next week).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-2009392110408877077?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/2009392110408877077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=2009392110408877077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/2009392110408877077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/2009392110408877077'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/07/ive-been-busy.html' title='I&apos;ve Been Busy'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-5921357747027163469</id><published>2007-05-24T17:27:00.000+10:00</published><updated>2007-05-24T17:44:34.433+10:00</updated><title type='text'>Problem with News Redirector in MOSS</title><content type='html'>The redirector function within MOSS 2007 works fine if you are redirecting to a web page (for both normal read-only users and administrators), but when the redirect is pointing to a document (e.g. .doc or .pdf), then normal read-only users get the following:&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_oMfvCRTNAQc/RlU_Rq6wpyI/AAAAAAAAAAM/23_tulun0m4/s1600-h/400Error.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5068026528486434594" alt="" src="http://bp1.blogger.com/_oMfvCRTNAQc/RlU_Rq6wpyI/AAAAAAAAAAM/23_tulun0m4/s320/400Error.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Looking at the MOSS logs, we see the following:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:78%;"&gt;04/29/2007 08:20:25.27 w3wp.exe (0x013C) 0x09F8 CMS Publishing 7fov Medium Caught a thread abort exception in TemplateRedirectionPage.ProcessRequest, the exception may be expected. stack trace= at Microsoft.SharePoint.Utilities.SPUtility.Redirect(String url, SPRedirectFlags flags, HttpContext context, String queryString) at Microsoft.SharePoint.Utilities.SPUtility.Redirect(String url, SPRedirectFlags flags, HttpContext context) at Microsoft.SharePoint.Publishing.WebControls.RedirectControl.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at Sys...&lt;br /&gt;04/29/2007 08:20:25.27* w3wp.exe (0x013C) 0x09F8 CMS Publishing 7fov Medium ...tem.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest() at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) at System.Web.UI.Page.ProcessRequest(HttpContext context) at ASP.REDIRECTPAGELAYOUT_ASPX__855614915.ProcessRequest(HttpContext context) at Microsoft.SharePoint.Publishing.TemplateRedirectionPage.ProcessRequest(HttpContext context) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When an administrator tries the same page, they see the page:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp0.blogger.com/_oMfvCRTNAQc/RlVBAa6wpzI/AAAAAAAAAAU/XDfTXAiszTU/s1600-h/redirect.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5068028431156946738" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_oMfvCRTNAQc/RlVBAa6wpzI/AAAAAAAAAAU/XDfTXAiszTU/s320/redirect.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Then they are redirected to (in this case) a Word document.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;NOTE:&lt;/strong&gt;  This is not a permissions issue to the document (i.e. the user can open the document directly).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Work Around&lt;/strong&gt;&lt;br /&gt;The only work-around is to change the 'Pages' library security settings (where the redirect page resides).  For this, you will need to break the security inheritance from the parent News site. You must set all readers to have contributor access.  To prevent malicious updates to the news articles, you simply configure the Pages library to require content approval, then setup an approval workflow to notify the administrator of the news area.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-5921357747027163469?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/5921357747027163469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=5921357747027163469' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/5921357747027163469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/5921357747027163469'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/05/problem-with-news-redirector-in-moss.html' title='Problem with News Redirector in MOSS'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_oMfvCRTNAQc/RlU_Rq6wpyI/AAAAAAAAAAM/23_tulun0m4/s72-c/400Error.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-6254728649885953186</id><published>2007-05-24T16:59:00.000+10:00</published><updated>2007-05-24T17:04:45.877+10:00</updated><title type='text'>.NET 3.0 Install Issues</title><content type='html'>I came across an issue today at a client site that was heavily locked down.  Basically I could not get to any other web site except the windows update site using IE.  This meant that when I ran dotnetfx3setup.exe (which installs just a stub then tries to download 33MB of data from the web), it fails because it cannot access the Internet.  I got around this by using the Windows Update site.  Using IE, navigate to Tools  Windows Update.  When the screen appears, select Custom.  The .NET 3.0 software is listed as one of the optional components.  Pretty simple fix, but when first faced with this type of issue, it seems like a show stopper.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-6254728649885953186?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/6254728649885953186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=6254728649885953186' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6254728649885953186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6254728649885953186'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/05/net-30-install-issues.html' title='.NET 3.0 Install Issues'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-5609706660619862407</id><published>2007-05-12T23:23:00.000+10:00</published><updated>2007-05-24T16:58:44.606+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><category scheme='http://www.blogger.com/atom/ns#' term='Upgrade'/><title type='text'>MS-Advantage's SPS to MOSS 2007 Upgrade Tips (Database Migration)</title><content type='html'>Over the last few months I have been doing quite a lot with upgrades. I got frustrated recently with Microsoft presentations stating that the database migration approach contained many manual steps (with no one from Microsoft actually willing to state what those steps were). Even the upgrade documentation says 'Repeat the restore and add database procedures for all content, search, and user profile databases'. They make it seem so simple don't they? I had previously found that I could upgrade the site content, but not the profile/audience information. No matter what I did, the upgrade resulted in me bashing my head up against a wall. Well in the week off between finishing up with SDM and starting a contract with DiData, I spent a lot of hours actually getting this to work. The information below has taken a lot of blood, sweat and tears. So rather than you 'claiming it as your own', I would appreciate it if you at least give me some credit. My company (MS-Advantage Pty Ltd) is always keen to provide additional consulting services if required :-)&lt;br /&gt;&lt;br /&gt;My tips for upgrading:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Get your preconfig running early in the piece, so that you leave yourself time to cleanup orphaned objects or unused sites. The PREUPGRADESCANCONFIG.xml file should contain each definition of your custom templates. Document the unghosted pages. In most instances, you would want to Reset to Site Definition after the upgrade (otherwise you cannot take advantage of the features available in MOSS).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Run SharePoint Configuration Analyzer, making sure you package up all of the web part cab files. Create a batch file for later installation of these web parts. The Configuration Analyzer is also useful in identifying closed web parts on pages (which should typically be deleted).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Sort out your Account naming conventions and database naming conventions before the upgrade. For databases, I often prefix the farm name and suffix the host header. E.g. IntPrd_WSS_CONTENT_Intranet.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Decide on whether or not you are going to configure sites with Kerberos or not. Make sure you have knowledgeable infrastructure people who know how to use the SetSpn command and to troubleshoot kerberos related issues. I find that IE 7 in particular continually re-prompts for authentication if kerberos is not setup properly (whereas IE6 seems to revert to NTLM mode).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I prefer to do a database migration rather than an in-place upgrade or gradual upgrade. With in-place upgrade often it is difficult to clean up the old SPS installation properly (you need to stop all of the SPS services before attempting to uninstall). With the gradual upgrade, I find the documentation doesn't really cover best practices for migrating sites across (e.g. do you use stsadm -o backup, then stsadm -o restore; or do you use the export/import approach - I haven't tried the export on a SPS machine).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Make sure that you create all of your MOSS-based custom site definitions and that they are in place before you run the upgrade. I typically just copy the OOB ones and rename them based on which template most closely matches your custom template (90% of SPS implementations just change SPSTOPIC, SPSNEWS etc because of branding/integration of navigation web parts, rather than fundamental changes to list definitions etc). If you have previously used custom templates, copy across your own webtemp??.xml file with your custom site definitions in there.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In the 12\Config\Upgrade directory, you must create your own SPSUpgrade.xml file (I typically use SPSUpgrade&lt;customername&gt;.xml). This file maps tells the upgrade process what to do with references to custom templates that it finds in the content.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Also in the 12\Config\Upgrade directory, if you have custom templates, you need to update the SiteUpgraderConfigSPS.xml file. This file typically tells the upgrade process what layout page to use with each associated template. By default, the SPS template will use the defaultLayout.aspx page, which has a different zone layout to the previous version (3 zone columns). I often find that when migrating from the SPS 2 zone structure to the 3 zone structure, the resultant upgraded page can become wider that it was previously, thus causing people with 1024x768 resolutions to scroll. To combat this, I have previously changed the mapping for the SPS template to use the welcomeLayout2.aspx page instead of the defaultLayout.aspx, as this page has the same 2 zone structure that was used in SPS 2003. All of the other custom site definitions typically use the welcomeLayout2.aspx page also.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;After creating the farm, configure base services (email, Office SharePoint Search, WSS Search). At this point you do not have any MOSS sites or SSP sites.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;At this point, do a final prescan on the SPS box and do a backup of the databases (for the migration). To prevent users from possibly changing the current SPS environment, set it to read only (I typically do this via Central Administration Configure site quotas and locks from the Virtual Server List page Manage site collection quotas and locks, then select the 'Adding content prevented' radio button.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Switch back to the MOSS environment and create the MOSS web application. Specify a dummy database name. I usually give it a host header also.  E.g. devintranet.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Restore the _SITE, _PROF and _SERV databases (I typically restore these with different names to match the new MOSS database naming convention. The _PROF becomes the _DB database and the _SERV becomes the _SEARCH_DB database). Set the database security on the _SITE database to match the security that has been applied to the dummy database you created (farm account should have db_owner access to the database). The server farm account should have db_owner access to the restored _DB and _SEARCH_DB databases.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;To upgrade the content database, I recommend doing it from the command line (web interface may timeout if the database is large). First, detach the dummy database from the MOSS web application. Do this with the command "stsadm –o deletecontentdb –url http://devintranet –databasename IntDev_DUMMYDB_DevIntranet". Then attach (and upgrade) the restored _SITE database with the command "stsadm –o addcontentdb –url http://devintranet –databasename IntDev_WSS_CONTENT_DevIntranet"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;THIS PART IS CRITICAL&lt;/strong&gt; - Create the new mysite host with the command stsadm -o createweb -url http://devintranet/userprofile -sitetemplate SPSMSITEHOST -title "MySite Host" (I use the syntax 'userprofile' as this is used in the URL when displaying people's public my sites. Private my sites will remain as /personal/...)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Run the previously created batch file (from SCA) to install each of the web parts.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Create the SSP web application (just through 'Create or extend web application'). I typically set this up with port 11000 and give it a host header name. E.g. intdevssp1.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;THIS PART IS CRITICAL&lt;/strong&gt; - You need to perform a restore of the SSP site to capture and upgrade the profile/audience information. &lt;strong&gt;This must be done from the command line&lt;/strong&gt;. The syntax is "stsadm -o restoressp -title SharedServices1 -url http://intdevssp1:11000 -ssplogin "domain\svc-spsspintdevssp1" -mysiteurl http://devintranet/userprofile -indexserver myindexservername -indexlocation "E:\Program Files\Microsoft Office Servers\12.0\Data\Office Server\Applications" -sspdatabaseserver mydbserver -sspdatabasename IntDev_IntDevSSP1_DB -ssppassword “myssppassword” -searchdatabaseserver mydbserver -searchdatabasename IntDev_IntDevSSP1_Search_DB -ssl no&lt;br /&gt;A warning message usually appears with the message “Could not find stored procedure 'dbo.proc_MSS_PropagationGetQueryServers'”. I have not worked this out as yet, but the upgrade appears to have worked successfully at this point.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Within Central Admin, apply a web application policy for a 'MOSS Admins' group (I typically do this because you can only specify an individual for site collection administrators).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;By default, the account used to setup the farm will have access to the Shared Services Provider site when it is created. Although adding the MOSS Administrators group to the web application policy gives those users the right to access the site, certain activities such as modifying the user profile schema is still secured. To fix this problem, login to the SSP site using the administrator account that created the farm. Select the 'Personalization services permissions' hyperlink in the SSP site and add the MOSS Admins group. Give the MOSS Admins group full access (i.e. 'Create personal site', 'Use personal features', 'Manage user profiles', 'Manage audiences', 'Manage permissions' and 'Manage usage analytics' rights).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;After an upgrade, you may notice a synchronisation issue being logged in the Windows Event Log. To fix this, from the command prompt, type:&lt;br /&gt;Stsadm –o sync –DeleteOldDatabases 0&lt;br /&gt;&lt;/li&gt;&lt;li&gt;There is a known bug with upgrades and that is that new users get an error when trying to create their my site. To fix this issue, navigate to Central Administration Application Management, and enable self service site creation. Add the application pool account associated with the my site host to the local administrators group. Perform an IIS reset.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;TIP&lt;/strong&gt;. I often find that previously in SPS/WSS, business units had to move their collaborative content into a team site (because of the more granular security). I have found that many customers often want to put these two previously segregated components back together (e.g. have one HR site that contains both published information and collaborative workspaces). To do this, you must use the stsadm -export and -import commands. I have found that if you use the minimal amount of arguments to these commands, documents for instance sometimes don't get exported (and are therefore subsequently missing following the import). The most reliable syntax I have found for the export is "stsadm -o export -url http://devintranet/sites/hr -filename hr.bak -includeusersecurity -versions 4". For the import, the most reliable syntax is "stsadm -o import -url "http://devintranet/Departments/Corporate Services/HR" -filename hr.bak -includeusersecurity -updateversions 2"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;TIP&lt;/strong&gt;. The upgrade process tries to fix and remap every bucket web instance that it finds (i.e. C1, C2 etc). Often however, if you have hardcoded links in content, these will not be detected by the upgrade. To address this, configure the search engine (i.e. do a full index crawl), then do searches for 'C1', 'C2' etc to find these hard-coded links. &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;I hope these tips/instructions save you the pain that I went through.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-5609706660619862407?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/5609706660619862407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=5609706660619862407' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/5609706660619862407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/5609706660619862407'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/05/ms-advantages-sps-to-moss-2007-upgrade.html' title='MS-Advantage&apos;s SPS to MOSS 2007 Upgrade Tips (Database Migration)'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-79857381378629024</id><published>2007-05-12T23:17:00.000+10:00</published><updated>2007-05-12T23:23:03.810+10:00</updated><title type='text'>South East Water Goes Live</title><content type='html'>When I left SDM a few weeks ago, I had just finished developing South East Water's public web site using MOSS (only content needed to be added).  Even after I had finished SDM, I was still testing it remotely and providing feedback (we had a wierd deployment issue, which was resolved with the help of Angus Logan).  Well it finally went live this week.  Check it out at &lt;a href="http://www.sewl.com.au"&gt;www.sewl.com.au&lt;/a&gt;.  Thanks to William Cornwill (&lt;a href="http://www.codejedi.net"&gt;CodeJedi&lt;/a&gt;) who also worked with me on this project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-79857381378629024?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/79857381378629024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=79857381378629024' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/79857381378629024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/79857381378629024'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/05/south-east-water-goes-live.html' title='South East Water Goes Live'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-413979295262933661</id><published>2007-04-27T23:38:00.000+10:00</published><updated>2007-04-27T23:51:30.767+10:00</updated><title type='text'>Shared Service Provider Access Denied</title><content type='html'>As I have had plenty of time playing with MOSS installs/upgrades over the last week (in between jobs), I discovered an interesting behaviour with Shared Service providers.  I tried to simulate a proper production install, so I installed MOSS and configured the farm with a test administrator account (e.g. testadmin).  During the upgrade process (database migration of the _PROF, _SERV and _SITE db) I logged on as a different administrator (not a domain admin, but a local admin on the box).  Well the upgrade went through without a problem and I was able to restore the SSP.  I then added myself to have full control over the dev intranet site and the SSP site (using Policy for Web Application).  I then navigated to the SSP site and configured the search. Then I went to update the profile information and it was there that I got the old Access Denied, you must sign in as someone else.  After scratching my head for a while, I discovered the 'Personalization services permissions' hyperlink in the SSP site.  So I logged back in as testadmin (who at this time was the only user who could actually get to the profile settings page), invoked this function and added a new group to the list, giving them 'Create personal site', 'Use personal features', 'Manage user profiles', 'Manage audiences', 'Manage permissions' and 'Manage usage analytics' rights, and low and behold I was able to edit profile settings with my normal local administrator account.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-413979295262933661?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/413979295262933661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=413979295262933661' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/413979295262933661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/413979295262933661'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/04/shared-service-provider-access-denied.html' title='Shared Service Provider Access Denied'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-2206336352244508093</id><published>2007-04-17T16:11:00.000+10:00</published><updated>2007-04-17T16:16:57.903+10:00</updated><title type='text'>My last week at SDM</title><content type='html'>Well it was a tough decision, but I have decided to leave SDM and start my own business (MS-Advantage Pty Ltd).  I start a 9 month contract with DiData on Monday the 30th of April.&lt;br /&gt;&lt;br /&gt;It will be sad to go, but I am looking forward to the challenges ahead.  SDM is a great company to work for with some very talented people.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-2206336352244508093?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/2206336352244508093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=2206336352244508093' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/2206336352244508093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/2206336352244508093'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/04/my-last-week-at-sdm.html' title='My last week at SDM'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-4199197236626455930</id><published>2007-04-17T16:07:00.000+10:00</published><updated>2007-04-17T16:11:11.384+10:00</updated><title type='text'>Update on SharePoint ASPMenu control</title><content type='html'>It ended up being caused by a custom developed breadbrumb control that was requiring extra credentials in order to query the parent site title. We ended up having to remove the control.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-4199197236626455930?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/4199197236626455930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=4199197236626455930' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/4199197236626455930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/4199197236626455930'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/04/update-on-sharepoint-aspmenu-control.html' title='Update on SharePoint ASPMenu control'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-296930025210395565</id><published>2007-04-04T16:37:00.000+10:00</published><updated>2007-04-04T17:02:20.832+10:00</updated><title type='text'>SharePoint ASPMenu control is prompting for user credentials if it finds draft documents on the public site</title><content type='html'>I am working on an MOSS internet project at the moment, and today I came across a strange behaviour in development where users get prompted for their credentials.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Background&lt;/strong&gt;&lt;br /&gt;Basically I setup a staging environment and did a full deployment through an ISA firewall to a destination server.  I then setup anon security on the destination site.  After making some changes to pages in development, I then ran a deployment to copy across changed files since the last deployment.  One of the things I noticed (and I wasn't aware of this) was that during a content deployment, it is not only the published files that get deployed, but also Draft pages. It doesn't seem to matter whether it is a full deployment or only the deployment of changes - draft content still gets sent across (which is bad).&lt;br /&gt;&lt;br /&gt;Now I have a couple of Master pages, each of which contains 3 content placeholder ids (PlaceHolderLeftNavBar, PlaceHolderMain, PlaceHolderAdSpace).  The page layout used only overwrites the PlaceHolderMain and PlaceHolderAdSpace regions (i.e. no reference to PlaceHolderLeftNavBar at all).  In this case, my main master page outputs the ASPMenu control in the PlaceHolderLeftNavBar space. My other master page contains the 3 content placeholders, but does not put anything into the PlaceHolderLeftNavBar area (and as the page layout doesn't reference this id also, nothing gets rendered in the left nav area).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Experienced Problem&lt;/strong&gt;&lt;br /&gt;On the destination server, when the master page with the ASPMenu left nav gets used, if there is any draft pages that it finds, it prompts for credentials, instead of just hiding them.  If I switch master pages so that the ASPMenu is no longer rendered on the page, the user does not get prompted.&lt;br /&gt;&lt;br /&gt;If anyone knows why this is and knows how to fix it, please post a comment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-296930025210395565?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/296930025210395565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=296930025210395565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/296930025210395565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/296930025210395565'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/04/sharepoint-aspmenu-control-is-prompting.html' title='SharePoint ASPMenu control is prompting for user credentials if it finds draft documents on the public site'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-6934145376731015997</id><published>2007-04-02T17:26:00.000+10:00</published><updated>2007-04-02T17:39:36.253+10:00</updated><title type='text'>Microsoft ForeFront may cause WCM deployment to fail</title><content type='html'>Today at a client site I noticed that content deployment just stopped working from my staging environment to the live site.  Basically the job said that it failed, but gave no errors or warnings at the staging environment end.  So I started to investigate what was going on within the destination server.  The event log had the following error:&lt;br /&gt;&lt;br /&gt;Failed import operation for Content Deployment job 'Remote import job for job with sourceID = f483830c-116d-4fd1-9d68-5dc6df9bd2cf'. Exception was: 'Microsoft.SharePoint.SPException: Exception from HRESULT: 0x81070000 ---&gt; System.Runtime.InteropServices.COMException (0x81070000): Exception from HRESULT: 0x81070000&lt;br /&gt;   at Microsoft.SharePoint.Library.SPRequestInternalClass.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bUpdateNoVersion, Int32&amp; plID, String&amp; pbstrGuid, Guid pbstrNewDocId, Boolean bHasNewDocId, String bstrVersion, Object&amp; pvarAttachmentNames, Object&amp; pvarAttachmentContents, Object&amp; pvarProperties, Boolean bCheckOut, Boolean bCheckin, Boolean bMigration, Boolean bPublish)&lt;br /&gt;   at Microsoft.SharePoint.Library.SPRequest.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bUpdateNoVersion, Int32&amp; plID, String&amp; pbstrGuid, Guid pbstrNewDocId, Boolean bHasNewDocId, String bstrVersion, Object&amp; pvarAttachmentNames, Object&amp; pvarAttachmentContents, Object&amp; pvarProperties, Boolean bCheckOut, Boolean bCheckin, Boolean bMigration, Boolean bPublish)&lt;br /&gt;   --- End of inner exception stack trace ---&lt;br /&gt;   at Microsoft.SharePoint.Library.SPRequest.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bUpdateNoVersion, Int32&amp; plID, String&amp; pbstrGuid, Guid pbstrNewDocId, Boolean bHasNewDocId, String bstrVersion, Object&amp; pvarAttachmentNames, Object&amp; pvarAttachmentContents, Object&amp; pvarProperties, Boolean bCheckOut, Boolean bCheckin, Boolean bMigration, Boolean bPublish)&lt;br /&gt;   at Microsoft.SharePoint.SPListItem.AddOrUpdateItem(Boolean bAdd, Boolean bSystem, Boolean bPreserveItemVersion, Boolean bNoVersion, Boolean bMigration, Boolean bPublish, Boolean bCheckOut, Boolean bCheckin, Guid newGuidOnAdd, Int32&amp; ulID, Object&amp; objAttachmentNames, Object&amp; objAttachmentContents, Boolean suppressAfterEvents)&lt;br /&gt;   at Microsoft.SharePoint.SPListItem.UpdateInternal(Boolean bSystem, Boolean bPreserveItemVersion, Guid newGuidOnAdd, Boolean bMigration, Boolean bPublish, Boolean bNoVersion, Boolean bCheckOut, Boolean bCheckin, Boolean suppressAfterEvents)&lt;br /&gt;   at Microsoft.SharePoint.SPListItem.Update()&lt;br /&gt;   at Microsoft.SharePoint.SPAttachmentCollection.AddNow(String leafName, Byte[] data)&lt;br /&gt;   at Microsoft.SharePoint.Publishing.Administration.JobReportBase.Update()&lt;br /&gt;   at Microsoft.SharePoint.Publishing.Administration.ContentDeploymentJob.importexport_Error(Object sender, SPDeploymentErrorEventArgs errorEventArg)&lt;br /&gt;   at Microsoft.SharePoint.Deployment.SPDeployment.OnError(SPDeploymentErrorEventArgs e)&lt;br /&gt;   at Microsoft.SharePoint.Deployment.DeploymentLogger.Log(DeploymentLogSeverity severity, SPDeploymentObject deplObject, String message, Boolean throwException)&lt;br /&gt;   at Microsoft.SharePoint.Deployment.DeploymentLogger.Log(DeploymentLogSeverity severity, SPDeploymentObject deplObject, Exception exception, Boolean throwNewException)&lt;br /&gt;   at Microsoft.SharePoint.Deployment.DeploymentLogger.Log(DeploymentLogSeverity severity, Exception exception, Boolean throwNewException)&lt;br /&gt;   at Microsoft.SharePoint.Deployment.SPImport.Run()&lt;br /&gt;   at Microsoft.SharePoint.Publishing.Administration.ContentDeploymentJob.DoImport()'&lt;br /&gt;&lt;br /&gt;This would be a tricky one to fix...&lt;br /&gt;So I dug deeper into the event log and noticed that a couple of days before, when there were no errors, this service called GetEngineFiles (i.e. ForeFront) had been started.  The service was having numerous problems accessing the internet to  updated its various scanning engines (because it was a dev machine, and external web access was blocked by the proxy).  So I walked over to the infrastructure guys and politely asked 'What the F@#% have you been doing with my server?'.  To this they responded 'oh, we installed Microsoft Forefront on it a couple of days ago and configured SharePoint to integrate with it'.  So I again politely asked for them to uninstall it and reboot the machine.  After this, miracles of miracles, the WCM deployment started working again. &lt;br /&gt;There endith the lesson - Without communication, we would all be lost!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-6934145376731015997?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/6934145376731015997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=6934145376731015997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6934145376731015997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6934145376731015997'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/04/microsoft-forefront-may-cause-wcm.html' title='Microsoft ForeFront may cause WCM deployment to fail'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-836773538657866716</id><published>2007-03-19T17:13:00.000+11:00</published><updated>2007-03-19T17:17:16.431+11:00</updated><title type='text'>Simple way to apply colour schemes across your site</title><content type='html'>You could use themes, but an easier way is to create separate stylesheets that override base styles that you have created (with different colour schemes).  Then within each top level site that you want to apply the colour scheme to, navigate to Site Settings | Master page, and in the alternate CSS URL section, select the 'Specify a CSS file to be used by this publishing site and all sites that inherit from it' radio button and then specify the path to your alternate CSS file. Pretty straight forward really. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-836773538657866716?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/836773538657866716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=836773538657866716' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/836773538657866716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/836773538657866716'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/03/simple-way-to-apply-colour-schemes.html' title='Simple way to apply colour schemes across your site'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-6080638044301312257</id><published>2007-03-19T16:37:00.000+11:00</published><updated>2007-03-19T16:51:48.645+11:00</updated><title type='text'>Web Design Tools that I can no longer live without</title><content type='html'>One of the biggest pains when building a new web site on MOSS is cross browser development and testing.  Often, slight errors in stylesheets can have disasterous affects on different browsers.  One of the tools that I have found help me in this regard is the FireBug add-in within Firefox.  This tool lets you inspect a particular element on the page.  It then tells you where it is picking up the associated styles for the selected element.  It references each stylesheet name that has been included, the line number, and which CSS attributes are being ignored.  It really helps you to quickly identify bizaar behaviours within a page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-6080638044301312257?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/6080638044301312257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=6080638044301312257' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6080638044301312257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6080638044301312257'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/03/web-design-tools-that-i-can-no-longer.html' title='Web Design Tools that I can no longer live without'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-9107601544391602195</id><published>2007-03-07T23:11:00.000+11:00</published><updated>2007-03-07T23:43:49.414+11:00</updated><title type='text'>MOSS 2007 - Web Part Pages don't display the left navigation</title><content type='html'>I discovered this on my current project. Bizaar - web part pages never render the left navigation. This looks crap, because you flick from publishing pages that display the left nav to web part pages that don't.&lt;br /&gt;&lt;br /&gt;I hunted around to find a fix and here it is...&lt;br /&gt;The Master page contains the following two Content Placeholders, which are instructed by the web part pages not to load.&lt;br /&gt;&lt;br /&gt;&amp;lt;asp:contentplaceholder id="PlaceHolderLeftNavBar" runat="server"&amp;gt; "CODE" &amp;lt;/asp:ContentPlaceHolder&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;asp:contentplaceholder id="PlaceHolderNavSpacer" runat="server"&amp;gt;"CODE"&amp;lt;/asp:ContentPlaceholder&amp;gt;&lt;br /&gt;&lt;br /&gt;Basically within these two content placeholders you move each 'CODE' block outside each ContentPlaceHolder tag.&lt;br /&gt;&lt;br /&gt;NOTE:DO NOT delete the Content Placeholders, as they are still needed to render (load) the page. The page will error if they are deleted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-9107601544391602195?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/9107601544391602195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=9107601544391602195' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/9107601544391602195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/9107601544391602195'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/03/moss-2007-web-part-pages-dont-display.html' title='MOSS 2007 - Web Part Pages don&apos;t display the left navigation'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-2267130512082802393</id><published>2007-03-05T10:09:00.000+11:00</published><updated>2007-03-05T10:16:51.793+11:00</updated><title type='text'>An update on the Timed Out Deployment Job</title><content type='html'>Even though the job said that it had timed out, refreshing the page showed that it was successful, but with the error 'Content deployment job Full Deployment: Timed Out'.  Clicking on this error shows the message 'The connection to the destination server was lost after the remote import job was started. The import job might still succeed. Content deployment will continue to attempt to reestablish a connection with the destination server.'&lt;br /&gt;&lt;br /&gt;It would be good to have a repeatable, consistently successful deployment.  Angus Logan from Microsoft suggested to change the timezone on the server to 1 hour prior, but that doesn't seem to have fixed the timeout problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-2267130512082802393?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/2267130512082802393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=2267130512082802393' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/2267130512082802393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/2267130512082802393'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/03/update-on-timed-out-deployment-job.html' title='An update on the Timed Out Deployment Job'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-5455239196824459872</id><published>2007-03-05T09:59:00.000+11:00</published><updated>2007-03-05T10:17:14.794+11:00</updated><title type='text'>MOSS 2007 - No Results renders differently in People scope</title><content type='html'>Within MOSS, there are two different web part instances to display the search results between the 'All Sites' tab and the 'People' tab. When you are on the all items tab, it is called the 'Search Core Results' web part, whereas in the People tab it is called the People Search Core Results web part. For some strange reason, the XSL for rendering the No Search results is different in these two pages. The core search page uses a span tag with a class of 'srch-description', whereas in the people search, it uses a span tag with a class of 'ms-sbplain'. The ms-sbplain style often has a border around it because this style is used for the standard search entry input screen. Therefore the People search No Results message has borders around every peace of text that it renders. To fix the problem, switch to the People tag and edit the page. Edit the XSL associated with the People Search Core Results web part and replace the ms-sbplain style in the No Results section to srch-description.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-5455239196824459872?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/5455239196824459872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=5455239196824459872' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/5455239196824459872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/5455239196824459872'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/03/moss-2007-no-results-renders.html' title='MOSS 2007 - No Results renders differently in People scope'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-5790361567028675855</id><published>2007-03-02T15:39:00.000+11:00</published><updated>2007-03-02T15:42:38.584+11:00</updated><title type='text'>First Real WCM Not so successful</title><content type='html'>Well it repeated the same error I had on my VPC environment - timed out.&lt;br /&gt;"The connection to the destination server was lost after the remote import job was started. The import job might still succeed. Content deployment will continue to attempt to reestablish a connection with the destination server".&lt;br /&gt;&lt;br /&gt;The export worked (i.e. it exported over 1800 pieces of content), but the import failed.  Bugger!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-5790361567028675855?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/5790361567028675855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=5790361567028675855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/5790361567028675855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/5790361567028675855'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/03/first-real-wcm-not-so-successful.html' title='First Real WCM Not so successful'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-3238256202156667383</id><published>2007-03-02T14:39:00.000+11:00</published><updated>2007-03-02T15:15:01.233+11:00</updated><title type='text'>My first real WCM Deployment</title><content type='html'>Today at a client site I was testing the deployment of a WCM site across to an external DMZ network.  I had setup a blank site collection on the destination server, SSP etc, configured the Central Administration to accept deployment requests, then switched back to the development server to start the deployment. The next 2 hours would be painful...&lt;br /&gt;When trying to setup the deployment path, it kept failing connecting to the destination Central Administration site.  With the help of a local infrastructure guru we went into troubleshooting mode. There was no proxy configured and the web.config file of each site on the server was configured to not detect for one, yet on the firewall trace we could see that the server was communicating with the Proxy as an anonymous user.  We could have allowed anonymous access on the proxy to fix the problem (which we did initially, but this is not the preferred approach), but their had to be a better way.  We went off on tangents for a while, checking the registry against each of the system accounts to see if their settings were configured to use a proxy or to auto detect (which they weren't).  We couldn't find where this 'Autodetect' IE setting was coming from (i.e. why was it going to the proxy).&lt;br /&gt;&lt;br /&gt;Before I go into spelling out how we fixed it, here's a little lesson that I learnt from my infrastructure friend.  Whenever a server looks for a server, it accesses a record called 'wpad' within the DNS.  The wpad tells the client where to go find the server.  The default setting was the proxy server (i.e. the ISA Server).  The client then communicates with this server (i.e. the ISA Server) for a configuration file, which tells it which domains it can try to talk directly with and which ones have to go via the proxy.  In our case, this config file was telling the client that every request must go through the proxy.&lt;br /&gt;&lt;br /&gt;To fix the problem we modified ISA's automatic detections script. We added the external domains to the domain include list, which essentially tells it that a client request can try to talk to the remote server directly.  We then modified the firewall rules (not ISA in this case) to allow communication from the specific source MOSS Server to the destination MOSS server on the nominated central administration port.&lt;br /&gt;&lt;br /&gt;This fixed the communication problem immediately. &lt;br /&gt;&lt;br /&gt;Next Steps - I configured the Quick Deploy settings to allow quick deployments to occur, then created another job for a full deployment.  After trying to start the quick deploy and let it sit there for a while on the 'Preparing' status (I don't know whether this is a problem because of the OWSTimer bug working on UTC time and not GMT time), I cancelled the job.  Funny thing was, shortly after this, the status changed to Running and then eventually to Failed.&lt;br /&gt;I've now kicked off the full deployment, but at the moment it is still in the 'Preparing' state.  I will keep you posted on whether or not this works (BTW, I have yet to get deployment to work on a VPC environment, where the source and destination sites are on the same server (and SQL is on the same Server too). The error I usually get is a timeout error.  It would be good if Microsoft could provide some more technical notes about what is happening under the covers when a deployment occurs.  There is some coding samples, but if the underlying plumbing is not working, whats the point.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-3238256202156667383?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/3238256202156667383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=3238256202156667383' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/3238256202156667383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/3238256202156667383'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/03/my-first-real-wcm-deployment.html' title='My first real WCM Deployment'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-184049129202300748</id><published>2007-02-26T11:02:00.000+11:00</published><updated>2007-02-26T11:24:02.177+11:00</updated><title type='text'>MOSS 2007 - Import/Export Lessons Learnt</title><content type='html'>On my current project, we are required to use the stsadm export/import switch to move team sites to their new information architecture ('/sites/sitex' type syntax is not really required any more if you are happy for the sites to belong to the top level site collection).  In addition to this, we wanted to migrate a site from another MOSS box to the new site.  Once again we tried the export/import, but it didn't work.&lt;br /&gt;&lt;br /&gt;Closer inspection revealed that although the export appeared to work (i.e. we got a success message), closer scrutiny of the export log shows that not all objects were correctly exported (in our case, some of the list definitions). This was due to the account that we were logged in as.  We did not have read-write access to the database.  Logging on as a local administrator with full privilege to the database resolved this problem.&lt;br /&gt;&lt;br /&gt;The second problem we had was to do with migrating subsites (not site collections). We found that you can only import them to a top sub level site – and only if you first create a blank sub site with the same name first.  This is the opposite when importing site collections – you can import them without first having to create a blank site, and you can import them anywhere in the site (not just straight under the top level site collection).&lt;br /&gt;&lt;br /&gt;So once you’ve got the thing successfully imported at a top sub site level, you can easily move them around using the 'Manage Content and Structure' GUI interface.&lt;br /&gt;&lt;br /&gt;FYI, the syntax for an export is:&lt;br /&gt;stsadm -o export -url &lt;a href="http://myserver/mysubsite1/mysubsite2"&gt;http://myserver/mysubsite1/mysubsite2&lt;/a&gt; -filename c:\backup.dat -overwrite&lt;br /&gt;the syntax for an an import is:&lt;br /&gt;stsadm -o import -url &lt;a href="http://mynewserver/mysubsite21"&gt;http://mynewserver/mysubsite2&lt;/a&gt; -filename c:\backup.dat&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-184049129202300748?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/184049129202300748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=184049129202300748' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/184049129202300748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/184049129202300748'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/02/moss-2007-importexport-lessons-learnt.html' title='MOSS 2007 - Import/Export Lessons Learnt'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-6819461770390189497</id><published>2007-02-22T12:16:00.000+11:00</published><updated>2007-02-22T12:27:16.360+11:00</updated><title type='text'>MOSS 2007 - Strange Behaviours in applying Master Pages across subsites</title><content type='html'>I was at a client site today and we were experiencing the following problem:&lt;br /&gt;&lt;br /&gt;When you create a sub-site underneath the home site and use say the 'Team Site' template, switching to the home site and applying a Site Master Page (with the children inherit option checked), this new site does not inherit the change.  When you navigate to the new team site it complains saying 'The system master page setting currently applied to this site is invalid. Please select a new master page and apply it'.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;The answer is:&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;All WSS templates that are also included in MOSS (including pages) actually inherit their setting from the System Master Page setting, not the Site Master Page setting. The Site Master Page is not used. Only in MOSS-specific templates, such as a Publishing site, is there Site Master Page usage and System Master Page usage.  So to fix this, from the home page Master page settings page, select 'System Master Page'  select the master page you want and check the 'Reset all subsites' option.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-6819461770390189497?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/6819461770390189497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=6819461770390189497' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6819461770390189497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/6819461770390189497'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2007/02/moss-2007-strange-behaviours-in.html' title='MOSS 2007 - Strange Behaviours in applying Master Pages across subsites'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-114341298864875477</id><published>2006-03-27T09:38:00.000+11:00</published><updated>2006-03-27T09:43:08.650+11:00</updated><title type='text'>The dreaded 'An error has occurred' message during SPS Install</title><content type='html'>I have never had this happen to me, but last week one of my colleagues had a monkey on his back when he was trying to install SharePoint Portal Server.  The install failed at the point when the Configuration database was being created with 'an error has occurred'.  To troubleshoot the problem I got him to install SQL Client Utilities onto the box (which he should have anyway to ensure the SharePoint Backup/Restore works properly) and then try to create a new database on the remote server. This failed.  In the end we found that for some reason, the Model database in SQL was set to Single user mode and the dba was using that connection.  Once we deleted his connection and set it back to Multiuser, the install worked without a hitch.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-114341298864875477?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/114341298864875477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=114341298864875477' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/114341298864875477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/114341298864875477'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2006/03/dreaded-error-has-occurred-message.html' title='The dreaded &apos;An error has occurred&apos; message during SPS Install'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-114341188228202148</id><published>2006-03-27T09:07:00.000+11:00</published><updated>2006-03-27T09:32:43.666+11:00</updated><title type='text'>Ever wondered how to increase the size of the My Site Photo?</title><content type='html'>I had a customer the other week that wanted everyone's My Site photo to appear a little larger (so that vision impaired people could see it easier). Out of the box, SharePoint sets the maximum photo size to 100 x 100. If a photo is only 50 x 50, then it still gets rendered at 50 x 50 because SharePoint does not stretch an image to be larger than its original size. The average size of the photos that my customer was uploading to the Staff Image library was 300 x 200. SharePoint would shrink this image to be around the 100 x 66 resolution. To fix it, I modified public.aspx, which exists in the My Site template (C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\TEMPLATE\1033\SPSMSITE). I changed the text from:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#cc0000;"&gt;&lt;em&gt;&amp;lt;table cellspacing=0 cellpadding=0 style="table-layout: fixed" width="100" id="tablePictureUrl"&amp;gt;&lt;br /&gt;&amp;lt;tr id="PictureUrlImage_TR" height="100"&amp;gt;&amp;lt;td id="ProfileViewer_ValuePictureUrl" valign=top align=right&amp;gt;&lt;br /&gt;&amp;lt;SPSWC:ProfilePropertyImage PropertyName="PictureUrl" ResizeToFit="100" ShowPlaceholder="true" id="PictureUrlImage" runat="server" /&amp;gt;&lt;br /&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;to:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#cc0000;"&gt;&lt;em&gt;&amp;lt;table cellspacing=0 cellpadding=0 style="table-layout: fixed" width="300" id="tablePictureUrl"&amp;gt;&lt;br /&gt;&amp;lt;tr id="PictureUrlImage_TR" height="300"&amp;gt;&amp;lt;td id="ProfileViewer_ValuePictureUrl" valign=top align=right&amp;gt;&lt;br /&gt;&amp;lt;SPSWC:ProfilePropertyImage PropertyName="PictureUrl" ResizeToFit="300" ShowPlaceholder="true" id="PictureUrlImage" runat="server" /&amp;gt;&lt;br /&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Quite simple really, changing '100' to '300'.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-114341188228202148?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/114341188228202148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=114341188228202148' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/114341188228202148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/114341188228202148'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2006/03/ever-wondered-how-to-increase-size-of.html' title='Ever wondered how to increase the size of the My Site Photo?'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-114341081423286194</id><published>2006-03-27T08:56:00.000+11:00</published><updated>2006-03-27T09:06:54.246+11:00</updated><title type='text'>Problems with running SPS install via Terminal Services</title><content type='html'>A colleague of mine ran into some problems last week while trying to install SharePoint at a customer site. They were connecting to a VM Ware instance via terminal services (mstsc) and were getting a VB runtime error whenever they tried to run setup.exe. After a couple of frustrating hours we realised that in order to run the install you had to be connected to the console session. The syntax therefore should be &lt;strong&gt;mstsc -v:servername /F -console&lt;/strong&gt; where mstsc is the Remote Desktop connection executable file, -v indicates a server to connect to, /F indicates full screen mode, and -console is the instruction to connect to the console session.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-114341081423286194?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/114341081423286194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=114341081423286194' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/114341081423286194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/114341081423286194'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2006/03/problems-with-running-sps-install-via.html' title='Problems with running SPS install via Terminal Services'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23320284.post-114135010112450334</id><published>2006-03-03T12:35:00.000+11:00</published><updated>2006-03-03T13:00:36.040+11:00</updated><title type='text'>Welcome</title><content type='html'>Well I never thought that I would see the day when I would succumb to blogging. I view people's blogs all the time, but rarely find time to work on one myself.&lt;br /&gt;&lt;br /&gt;Who am I?&lt;br /&gt;&lt;br /&gt;Well I'm the Australian National Manager for Collaboration &amp; Workflow solutions for Strategic Data Management, a Microsoft Gold Certified Partner with offices in Melbourne, Adelaide and Sydney. Although I am a techo at heart, I also do a lot of sales &amp;amp; marketing related work, including client demos, creation of marketing material and bid work; oh yes - don't we love that bid work :-(.&lt;br /&gt;&lt;br /&gt;As I specialise in all things Information Worker (and Business Process Automation), I will use this blog to post useful information that I have found around the traps. Hope you enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23320284-114135010112450334?l=alancoulter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alancoulter.blogspot.com/feeds/114135010112450334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23320284&amp;postID=114135010112450334' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/114135010112450334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23320284/posts/default/114135010112450334'/><link rel='alternate' type='text/html' href='http://alancoulter.blogspot.com/2006/03/welcome.html' title='Welcome'/><author><name>Alan Coulter</name><uri>http://www.blogger.com/profile/08776140590565586512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://photos1.blogger.com/blogger/5735/2386/1600/alancoulter.jpg'/></author><thr:total>0</thr:total></entry></feed>
