<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.sharepointblogs.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Bobby Habib SharePoint &amp;amp; MOSS Blogging Space</title><link>http://www.sharepointblogs.com/bobbyhabib/default.aspx</link><description>Bobby Habib - My findings on SharePoint / MOSS, Web Part Developments, etc. Information I think will help the SharePoint Community. All posts are provided &amp;quot;AS IS&amp;quot; with no warranties, and confers no rights.
Whats the bloody Point!</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP2 (Build: 20611.960)</generator><item><title>Leveraging the Object Cache, but there are considerations from a development perspective</title><link>http://www.sharepointblogs.com/bobbyhabib/archive/2008/10/10/leveraging-the-object-cache-but-there-are-considerations-from-a-development-perspective.aspx</link><pubDate>Fri, 10 Oct 2008 00:39:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:21737</guid><dc:creator>bobbyhabib</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/bobbyhabib/rsscomments.aspx?PostID=21737</wfw:commentRss><comments>http://www.sharepointblogs.com/bobbyhabib/archive/2008/10/10/leveraging-the-object-cache-but-there-are-considerations-from-a-development-perspective.aspx#comments</comments><description>&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;One of the most simplest and effective ways to speed up your portal page loads is to leverage the Object Cache for MOSS, which comes as part of the product Out of the box. This &lt;span style="mso-ansi-language:EN-US;"&gt;settings can be modified in the SharePoint site : Site Actions &amp;gt; Modify All Site Settings &amp;gt; Object Cache Settings.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;So what does this give you? &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;p&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;We all know that MOSS practically stores everything in its SQL database, so this could prove to be expensive from a networking perspective and can put heavy load on the SQL server, so this is where the object cache mechanism can take advantage on objects (Content) that are commonly requested. For example the Navigation control, most pages would have a navigation control embedded into a MOSS page, by storing these common objects to disk, will &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;reduce the number of server hops required to be hit on the SQL Server decreasing page load time. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Sounds like a great way to speed up MOSS page loads.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;But when we get out of the arena of Out of the Box controls and jump into the land of customization, then the Object Cache settings can make or break the page load times. Confused?&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;OK we need to dig a little deeper to get my point across.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;OK, let me give you an example; one of the ways to create a custom navigation control or a site map of your site structure would be to iterate through your sites and build up a control dynamically using something like the PortalSiteMapProvider class that is provided to you in the Microsoft.SharePoint.Publishing assembly. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;p&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Sounds about right. &lt;img src="http://www.sharepointblogs.com/emoticons/emotion-2.gif" alt="Big Smile" /&gt; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;But what happens if you have something like 500+ subsites. I have seen companies having 5000 + subsites, but wait we would probably leveraging the Object Cache, as the PortalMapSiteProvider uses the CacheObject interfaces instead of the actual SPWeb objects. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;p&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;But it still needs to build the cache the first time. If we look at the behavior of the PortalSiteMapProvider class, when we parse the map, a SPWeb object is cached for each node. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;If let’s say for arguments sake each node consumes about 1mb&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;per node and our object cache size is only set to 100mb, if we have a large site structure and we come to the 101 node, the oldest object will be removed from the cache to allow for the latest node to be cached. If we had 500 nodes (sub-sites) only the latest 100 nodes will be cached and the remaining 400 nodes would have been stored in the cache and then removed making the object cache completely in-efficient, as the next request will have to rebuild all this again, causing really slow page loads and no benefit of the object cache, as what is now stored in the object cache is useless pile of muck. &lt;img src="http://www.sharepointblogs.com/emoticons/emotion-10.gif" alt="Embarrassed" /&gt; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-bidi-language:AR-SA;mso-fareast-theme-font:minor-latin;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;"&gt;We will also fill up unnecessary memory causing w3wp.exe to run inefficiently.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Also we end up with a high number of SPWeb objects being left open waiting for the most reliable [not] .Net Garbage Collector to free up its memory resource, because the objects are not disposed by design and if you are not careful with Verbose logging ramped up, you probably will end up with GB’s of ULS logs in MOSS in minutes, eating valuable disk space, depending on your log settings.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt; 
&lt;p&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-bidi-language:AR-SA;mso-fareast-theme-font:minor-latin;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-bidi-language:AR-SA;mso-fareast-theme-font:minor-latin;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;"&gt;So what can we do to improve this, well we have a few choices:&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-bidi-language:AR-SA;mso-fareast-theme-font:minor-latin;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-bidi-language:AR-SA;mso-fareast-theme-font:minor-latin;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;"&gt;
&lt;p class="MsoListParagraph" style="MARGIN:0cm 0cm 10pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-ansi-language:EN-US;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;1.&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;You can consider increasing the objects cache size, when it comes to a huge number of objects, start from 500MB, test and move up from there, tweaking the object cache size. Obviously, this will require your system to have an important RAM size, or will push you towards 64-bit if you are not already there. &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN:0cm 0cm 10pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-bidi-language:AR-SA;mso-fareast-theme-font:minor-latin;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;"&gt;2.&amp;nbsp;&amp;nbsp;&amp;nbsp; Develop a navigation control to read an .xml file that can be updated through a custom windows or custom timer job, for example every 15mins. This type of solution does not provide a page to be visible until the xml file has been updated.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN:0cm 0cm 10pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-bidi-language:AR-SA;mso-fareast-theme-font:minor-latin;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;"&gt;3.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-bidi-language:AR-SA;mso-fareast-theme-font:minor-latin;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;"&gt;Develop your own provider&lt;span style="COLOR:#1f497d;"&gt;, &lt;/span&gt;with another cache mechanism for instance caching the nodes and not the SPWeb objects.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN:0cm 0cm 10pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-bidi-language:AR-SA;mso-fareast-theme-font:minor-latin;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-bidi-language:AR-SA;mso-fareast-theme-font:minor-latin;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-bidi-language:AR-SA;mso-fareast-theme-font:minor-latin;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-bidi-language:AR-SA;mso-fareast-theme-font:minor-latin;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-bidi-language:AR-SA;mso-fareast-theme-font:minor-latin;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;"&gt;The morale of this blog is when considering using the Object Cache; take into consideration the customization you may have implemented in your MOSS environment and the way the customization has been developed. If these considerations have not been considered and your development is leveraging the Object Cache interfaces you could have an adverse reaction to what you trying to achieve.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=21737" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/MOSS+Development/default.aspx">MOSS Development</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/MOSS++Customisation/default.aspx">MOSS  Customisation</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/PortalSiteMapProvider/default.aspx">PortalSiteMapProvider</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/Object+Cache/default.aspx">Object Cache</category></item><item><title>Applying Version 2 patch for MOSS PortalSheild for WSS 3.0</title><link>http://www.sharepointblogs.com/bobbyhabib/archive/2008/07/08/applying-version-2-patch-for-moss-portalsheild-for-wss-3-0.aspx</link><pubDate>Tue, 08 Jul 2008 05:25:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:18502</guid><dc:creator>bobbyhabib</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/bobbyhabib/rsscomments.aspx?PostID=18502</wfw:commentRss><comments>http://www.sharepointblogs.com/bobbyhabib/archive/2008/07/08/applying-version-2-patch-for-moss-portalsheild-for-wss-3-0.aspx#comments</comments><description>&lt;p&gt;&lt;b&gt;&lt;u&gt;ISSUE:&lt;/u&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;After applying Version 2 patch of Portalshield for WSS 3.0, you my see the following error:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ul style="margin-right:0px;"&gt;&lt;li&gt; &lt;div&gt;&lt;b&gt;Event ID
3351 - SQL database login failed. Additional error information from SQL
Server is included below.&amp;nbsp;&amp;nbsp;&amp;nbsp; Login failed for user &amp;#39;NT
AUTHORITY\ANONYMOUS LOGON&amp;#39;&lt;br /&gt; &lt;/b&gt;&lt;br /&gt; &lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;&lt;b&gt;Event ID 1000 -&amp;nbsp;(#50070 &amp;quot;Unable to connect to the database &amp;quot;&amp;lt;database name&amp;gt;&amp;quot; on &amp;quot;&amp;lt;remote SQL server name&amp;gt;&amp;quot;)&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;These error may occur every 5 mins in your event logs.&lt;/p&gt;&lt;p&gt;&lt;u&gt;&lt;b&gt;FIX:&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;&lt;p style="font-weight:bold;"&gt;Run the SETSQLACT tool&amp;nbsp;at the command prompt to select the appropriate account:&lt;/p&gt;  &lt;ol&gt;&lt;li&gt;Click &lt;b&gt;Start, Run&lt;/b&gt;, type &lt;b&gt;cmd&lt;/b&gt; click &lt;b&gt;OK&lt;/b&gt;.&lt;/li&gt;&lt;li&gt; &lt;div&gt;At the prompt, type the appropriate command below and press ENTER:&amp;nbsp;&lt;br /&gt; &lt;br /&gt; &lt;b&gt;CD \Program Files\Network Associates\McAfee PortalShield\bin&lt;/b&gt; (For PortalShield 1.x installations)&lt;br /&gt; &lt;br /&gt; &lt;b&gt;CD \Program Files\McAfee\McAfee PortalShield\bin&lt;/b&gt; (For PortalShield 2.x installations)&lt;br /&gt; &lt;br /&gt; &lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;Type the following command and press ENTER:&amp;nbsp;&lt;br /&gt; &lt;br /&gt; &lt;b&gt;SETSQLACT.EXE&lt;/b&gt;&amp;nbsp;&lt;br /&gt; &lt;br /&gt; &lt;/div&gt; &lt;/li&gt;&lt;li&gt;Type the name of the &lt;b style="font-weight:400;"&gt;account&lt;/b&gt;&amp;nbsp;that has access to the remote database&amp;nbsp;&lt;b&gt;and&lt;/b&gt; is a member of the &lt;b&gt;Local Administrators&lt;/b&gt; group and press ENTER.&lt;/li&gt;&lt;/ol&gt;  &lt;p&gt;Keep this command&amp;nbsp;session open as it will be used later in this procedure.&lt;/p&gt;  &lt;p style="font-weight:bold;"&gt;Modify the registry:&lt;/p&gt;  &lt;ol&gt;&lt;li&gt;Click &lt;b&gt;Start, Run&lt;/b&gt;, type &lt;b&gt;regedit&lt;/b&gt; and click &lt;b&gt;OK&lt;/b&gt;.&lt;/li&gt;&lt;li&gt; &lt;div&gt;Navigate to and select the&amp;nbsp;appropriate registry key below:&lt;br /&gt; &lt;br /&gt; &lt;b&gt;HKEY_LOCAL_MACHINE\Software\Network Associates\McAfee PortalShield&lt;/b&gt; (For PortalShield 1.x installations)&lt;br /&gt; &lt;br /&gt; &lt;b&gt;HKEY_LOCAL_MACHINE\Software\McAfee\McAfee PortalShield&lt;/b&gt; (For PortalShield 2.x installations)&lt;br /&gt; &lt;br /&gt; &lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;In the right pane, click &lt;b&gt;Edit&lt;/b&gt;, &lt;b&gt;New&lt;/b&gt;, &lt;b&gt;DWORD value&lt;/b&gt;.&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;Name the new DWORD value &lt;b&gt;ODForceImpersonate&lt;/b&gt; and set the &lt;b&gt;Value data&lt;/b&gt;&amp;nbsp;to &lt;b&gt;1&lt;/b&gt;.&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;Close Regedit.&lt;/div&gt; &lt;/li&gt;&lt;/ol&gt;  &lt;p style="font-weight:bold;"&gt;At the command prompt:&lt;/p&gt;  &lt;ol&gt;&lt;li&gt; &lt;div&gt;Type the command below&amp;nbsp;and press ENTER&amp;nbsp;to restart&amp;nbsp;Microsoft IIS:&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&lt;b&gt;IISRESET&lt;/b&gt;&amp;nbsp;&lt;br /&gt; &lt;br /&gt; &lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;Wait for the prompt stating &lt;b&gt;Internet services successfully restarted&lt;/b&gt;, then close the command&amp;nbsp;session.&lt;/div&gt; &lt;/li&gt;&lt;/ol&gt;  &lt;p style="font-weight:bold;"&gt;Restart the PortalShield service:&lt;/p&gt;  &lt;ol&gt;&lt;li&gt;Click &lt;b&gt;Start&lt;/b&gt;, &lt;b&gt;Settings&lt;/b&gt;, &lt;b&gt;Control Panel&lt;/b&gt;, &lt;b&gt;Administrative Tools&lt;/b&gt;, &lt;b&gt;Services&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;Right-click the &lt;b&gt;McAfee PortalShield&lt;/b&gt; service and select &lt;b&gt;Restart&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;Close the Services window.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This fix was initially used to fix the same issue in PortalShield for WSS 2.0, I came across the same problem for PortalShield for WSS 3.0 after applying Version 2 patch and the same fix resolved my issue for MOSS. The fix is listed on the Macfee site but only references PortalShield for WSS 2.0.&lt;/p&gt;&lt;p&gt;&lt;a href="https://knowledge.mcafee.com/SupportSite/search.do?cmd=displayKC&amp;amp;docType=kc&amp;amp;externalId=KB43607&amp;amp;sliceId=SAL_Public&amp;amp;dialogID=32564032&amp;amp;stateId=1%200%2032558709%20" title="Mcafee Ref" target="_blank"&gt;Mcafee&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.sharepointblogs.com/emoticons/emotion-1.gif" alt="Smile" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=18502" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/MOSS+2007+Antivirus/default.aspx">MOSS 2007 Antivirus</category></item><item><title>Using the Outlook Web Part and User Credentials</title><link>http://www.sharepointblogs.com/bobbyhabib/archive/2008/07/08/using-the-outlook-web-part-and-user-credentials.aspx</link><pubDate>Tue, 08 Jul 2008 04:57:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:18501</guid><dc:creator>bobbyhabib</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/bobbyhabib/rsscomments.aspx?PostID=18501</wfw:commentRss><comments>http://www.sharepointblogs.com/bobbyhabib/archive/2008/07/08/using-the-outlook-web-part-and-user-credentials.aspx#comments</comments><description>&lt;p&gt;How do we get the OWA Web Part to work without prompting you to add user credentials and to autodetect the user without prompting for a password?&lt;/p&gt;&lt;p&gt;Hmmm...Interesting. &lt;img src="http://www.sharepointblogs.com/emoticons/emotion-40.gif" alt="Hmm" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;The best workaround I have seen for this so far is to set up x2 web sites on your OWA server. One web site can be configured with FBA [Forms Basic Authentication] or Basic Authentication [mail.yourcompany.com] which is used for primary OWA use within your organization and the other web site [spmail.yourcompany.com] is configured with Windows Authentication which is used for just SharePoint web part usage.&lt;/p&gt;&lt;p&gt;&amp;nbsp;Using the windows authentication site [spmail.yourcompany.com] within your web part will automatically log the user onto the OWA server without re-prompting for the password.&lt;/p&gt;&lt;p&gt;Makes sense when you think about it. &lt;img src="http://www.sharepointblogs.com/emoticons/emotion-42.gif" alt="Confused" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=18501" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/Web+Parts/default.aspx">Web Parts</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/Web+Part/default.aspx">Web Part</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/OWA/default.aspx">OWA</category></item><item><title>Different type of MOSS caching mechanisms ?</title><link>http://www.sharepointblogs.com/bobbyhabib/archive/2008/07/02/different-type-of-moss-caching-mechanisms.aspx</link><pubDate>Wed, 02 Jul 2008 16:59:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:18303</guid><dc:creator>bobbyhabib</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/bobbyhabib/rsscomments.aspx?PostID=18303</wfw:commentRss><comments>http://www.sharepointblogs.com/bobbyhabib/archive/2008/07/02/different-type-of-moss-caching-mechanisms.aspx#comments</comments><description>&lt;p&gt;SharePoint 2007 has a&amp;nbsp;caching features built into itself to speed up the performance of site rendering, but does not do content synching or content replication. MOSS 2007 uses ASP.NET 2.0 caching options as well as caching functionality that the Office team designed specifically for MOSS.&lt;/p&gt;
&lt;p&gt;The types of caching are:&lt;/p&gt;
&lt;p&gt;Type:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;Output Caching and Cache Profiles&lt;/strong&gt; &lt;br /&gt;Cache At:&amp;nbsp;Individual page level&lt;br /&gt;Note:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Includes extending caching using VaryByCustomString&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Type:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;Object Caching&lt;/strong&gt; &lt;br /&gt;Cache At:&amp;nbsp;Individual Web Part control, field control, and content level&lt;br /&gt;Note:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Includes cross-list query caching and navigation caching&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Type:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;strong&gt;Disk-based Caching for Binary Large Objects &lt;/strong&gt;&lt;br /&gt;Cache At:&amp;nbsp;Individual binary large object (BLOB) level and caches images, sound, movies, and code&lt;br /&gt;Note:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Supports .gif, .jpg, .js, .css, and other image, sound, and code files that are stored as binary large objects&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;u&gt;&lt;strong&gt;&lt;font size="3"&gt;Procedures for Output Caching and Cache Profiles&lt;/font&gt;&lt;/strong&gt; &lt;/u&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pros and Cons of Output Caching&lt;br /&gt;&lt;/strong&gt;Before choosing to use output caching to improve the performance of page and page-item rendering, consider benefits and drawbacks of a potential output caching implementation. All considerations are not listed in this document, but some benefits you may want to consider include:&lt;/p&gt;
&lt;p&gt;Each equivalent class of content (such as page or item within a page) receives faster response, and therefore shorter latency, after it is initially rendered.&lt;/p&gt;
&lt;p&gt;Each server uses less CPU time and energy to serve the same page after the initial rendering.&lt;/p&gt;
&lt;p&gt;Each data source for the rendered page can scale to serve more Web clients because of the decreased traffic flow that output caching makes possible.&lt;/p&gt;
&lt;p&gt;For each page request for which an output cached version of a page is served, the server does not have to:&lt;/p&gt;
&lt;p&gt;Make a round trip to the database to fetch the source code for the .aspx page and any .ascx controls on the page.&lt;/p&gt;
&lt;p&gt;Reload and re-render the controls.&lt;/p&gt;
&lt;p&gt;Requery any data sources that the controls rely on for data.&lt;/p&gt;
&lt;p&gt;However, before deciding to implement output caching, you may want to consider the following concerns:&lt;/p&gt;
&lt;p&gt;Output caching consumes additional memory. Each version of a page consumes memory on the Web client.&lt;/p&gt;
&lt;p&gt;When used with two or more front-end Web servers, output caching may affect consistency. You can configure a cache profile not to check for updates for each request and, for example, instruct it to ignore changes to the version of the Web page in the output cache until 60 seconds after the original page is updated. If you have two front-end Web servers in your topology, and depending on the load balancer used to route the user&amp;#39;s request, a reader of site content could see inconsistency if the page is rendered by one server and then a subsequent request is routed to a second server within that 60-second window.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cache Profiles&lt;/strong&gt;&lt;br /&gt;Office SharePoint Server 2007 adds a more precise mechanism for customizing output caching than those available natively in ASP.NET 2.0. Office SharePoint Server 2007 includes cache profiles, which are list-style cache settings that you can name and apply to pages, page items, content types, and levels of scale in your site deployment.&lt;/p&gt;
&lt;p&gt;By using cache profiles, you can control the level of granularity applied to output caching; allow or disallow site owners and administrators to choose their own cache profiles and apply them flexibly to page layouts; and target output caching at the site collection, site, and page layout levels.&lt;/p&gt;
&lt;p&gt;You can organize caching behavior based on a user&amp;#39;s access rights to a site. For example, you may have three groups defined: one with full control, one with read and write rights, and one with read-only rights. Output caching renders the page the same way for users with the same rights, so you can use cache profiles to target caching to specific audience groups. In the cache profiles that Office SharePoint Server 2007 delivers by default, the caching system renders the page once per group of user access rights and then caches the resulting HTML stream. The next user with the same access rights gets the stream from the cache.&lt;/p&gt;
&lt;p&gt;After you create and deploy a cache profile, any change to the cache profile immediately affects all applicable content on the site. For example, if all document library page layouts in a given site collection are initially cached for 60 seconds, and you increase that duration to 120 seconds, every document library page layout in that site collection is cached for 120 seconds regardless of the number of document library page layouts or sites in the site collection.&lt;/p&gt;
&lt;p&gt;You can define a cache profile by using the cache profile stored in a standard Office SharePoint Server 2007 list, and extend it programmatically by using a VaryByCustom handler. If you apply the cache profile to the site and page layout through the user interface, down-level propagation enforces consistency in child sites. Cache policy is secured independently from other Office SharePoint Server 2007 features.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To enable output caching for a site collection&lt;br /&gt;&lt;/strong&gt;Navigate to the root Web site of the site collection. On the Site Actions menu, click Site Settings.&lt;/p&gt;
&lt;p&gt;In the Site Collection Administration section, select Site collection output cache.&lt;/p&gt;
&lt;p&gt;To enable output caching for this site collection, select Enable output cache.&lt;/p&gt;
&lt;p&gt;Choose a cache profile for anonymous users from the Anonymous Cache Profile list. This profile is applied when anonymous users access a site in this site collection.&lt;/p&gt;
&lt;p&gt;Choose a cache profile for authenticated users from the Authenticated Cache Profile list. This profile is applied when authenticated users access a site in this site collection.&lt;/p&gt;
&lt;p&gt;Choose Page Output Cache Policy options.&lt;/p&gt;
&lt;p&gt;If publishing sites can use a different output cache profile, select Publishing sites can use a different page output cache profile.&lt;/p&gt;
&lt;p&gt;If page layouts can use a different output cache profile, select Page layouts can use a different page output cache profile.&lt;/p&gt;
&lt;p&gt;If you want to display additional cache information on pages in this site collection, including the date and time that page contents were last rendered, select Enable debug cache information on pages.&lt;/p&gt;
&lt;p&gt;Click OK.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To enable output caching for a site&lt;/strong&gt;&lt;br /&gt;Navigate to the root Web site of the site collection. On the Site Actions menu, click Site Settings.&lt;/p&gt;
&lt;p&gt;In the Site Administration section, select Site output cache.&lt;/p&gt;
&lt;p&gt;Choose an Anonymous Cache Profile option:&lt;/p&gt;
&lt;p&gt;If you want to inherit a cache profile, click Inherit the profile.&lt;/p&gt;
&lt;p&gt;If you want to choose a cache profile from those currently available, select Select a page output cache profile.&lt;/p&gt;
&lt;p&gt;If you want to apply these settings to all subsites of this root Web site, select Apply these settings to all sub-sites.&lt;/p&gt;
&lt;p&gt;Click OK.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To create a new cache profile&lt;/strong&gt;&lt;br /&gt;Navigate to the root Web site of the site collection. On the Site Actions menu, click Site Settings.&lt;/p&gt;
&lt;p&gt;In the Site Collection Administration section, select Site collection cache profiles.&lt;/p&gt;
&lt;p&gt;Click New.&lt;/p&gt;
&lt;p&gt;Define and create a new cache profile.&lt;/p&gt;
&lt;table class=""&gt;

&lt;tr&gt;
&lt;th class=""&gt;Detail &lt;/th&gt;
&lt;th class=""&gt;Description &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;Title&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Required. The system name of this cache profile.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;Display Name&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Populates the list of available cache profiles for site owners and page layout owners.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;Display Description&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Populates the list of available cache profiles for site owners and page layout owners.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;Perform ACL Check&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Select to ensure that all items in the cache are security trimmed.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;Enabled&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Select if you want caching to happen.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;Duration&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Number of seconds to keep the cached version available.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;Check for Changes&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Select to validate on each page request that the site has not changed and to flush the cache when the site changes.&lt;/p&gt;
&lt;p&gt;Clear if you want better performance. If unchecked, system does not check for updates to sites for the number of seconds specified in Duration.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;Vary by Custom Parameter&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Specify a value as described in the ASP.NET 2.0 &lt;a id="ctl00_rs1_mainContentContainer_ctl02" href="http://msdn.microsoft.com/en-us/library/system.web.httpcachepolicy.setvarybycustom.aspx"&gt;HttpCachePolicy.SetVaryByCustom&lt;/a&gt; method documentation.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;Vary by HTTP Header&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Specify a value as described in the ASP.NET 2.0 &lt;a id="ctl00_rs1_mainContentContainer_ctl03" href="http://msdn.microsoft.com/en-us/library/system.web.httpcachepolicy.varybyheaders.aspx"&gt;HttpCachePolicy.VaryByHeaders&lt;/a&gt; property documentation.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;Vary by Query String Parameters&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Specify a value as described in the ASP.NET 2.0 &lt;a id="ctl00_rs1_mainContentContainer_ctl04" href="http://msdn.microsoft.com/en-us/library/system.web.httpcachepolicy.varybyparams.aspx"&gt;HttpCachePolicy.VaryByParams&lt;/a&gt; property documentation.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;Vary by User Rights&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Select to ensure that users must have identical effective rights on all SharePoint security scopes to see the same cached page as any other user.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;Cacheability&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Choose a value from the drop-down list. Choices include NoCache, Private, Server, ServerAndNoCache, Public, and ServerAndPrivate. To learn more, see the ASP.NET 2.0 &lt;a id="ctl00_rs1_mainContentContainer_ctl05" href="http://msdn.microsoft.com/en-us/library/system.web.httpcacheability.aspx"&gt;HttpCacheability&lt;/a&gt; enumeration topic.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;Safe for Authenticated Use&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Select only for policies that you want to allow administrators and page layout designers to apply to authenticated scenarios.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;
&lt;p&gt;Allow writers to view cached content&lt;/p&gt;&lt;/td&gt;
&lt;td class=""&gt;
&lt;p&gt;Select to bypass the default behavior of not allowing people with edit rights to cached their pages.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font size="4"&gt;Procedures for Object Cache&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Microsoft Office SharePoint Server 2007 supports caching of certain page items, such as navigation data and data accessed through cross-list queries. Caching page items is fast and eliminates the need to retrieve field data from the database each time a page is rendered. The caching system caches complete field data for a page, excluding data for any Web Part controls on the page.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Caching for objects in a page can almost always be used. When users have a document checked out, the cache is bypassed.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Configure the object cache&lt;/strong&gt;&lt;br /&gt;On the Site Actions menu, point to Site Settings, and then click Modify All Site Settings.&lt;/p&gt;
&lt;p&gt;Under Site Collection Administration, click Site collection object cache.&lt;/p&gt;
&lt;p&gt;In the Object Cache Size section, type a value in the box to specify the amount of memory (in megabytes) that you want the object cache to use.&lt;/p&gt;
&lt;p&gt;In the Cross List Query Cache Changes section, select one of the following options:&lt;/p&gt;
&lt;p&gt;If your content changes frequently and you want to display the most accurate results possible, select Check the server for changes every time a cross list query runs.&lt;/p&gt;
&lt;p&gt;On site collections where the improved performance you get from caching does not compromise the accuracy of the results, select Use the cached result of a cross list query for this many seconds and type the amount of time in seconds to cache the results of the query&lt;/p&gt;
&lt;p&gt;In the Cross List Query Results Multiplier section, type a number from 1 through 10 to use as a results multiplier.&lt;/p&gt;
&lt;p&gt;Type a larger number if your site collection has unique security permissions applied to many lists and sites. Type a smaller number if your site collection does not have unique permissions on each list or site. A smaller multiplier uses less memory per query.&lt;/p&gt;
&lt;p&gt;Click OK.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Flush the object cache&lt;/strong&gt;&lt;br /&gt;On the Site Actions menu, point to Site Settings, and then click Modify All Site Settings.&lt;/p&gt;
&lt;p&gt;Under Site Collection Administration, click Site collection object cache.&lt;/p&gt;
&lt;p&gt;In the Object Cache Reset section, do one or more of the following:&lt;/p&gt;
&lt;p&gt;To force the current server to flush its object cache, select the Object Cache Flush check box.&lt;/p&gt;
&lt;p&gt;Select one or more check boxes. When you click OK, all entries in the object cache are flushed immediately.&lt;/p&gt;
&lt;p&gt;If you do not select one more check boxes, the object cache manages the expiration of items based on when they time-out or are changed in the site.&lt;/p&gt;
&lt;p&gt;Click OK.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font size="3"&gt;Enabling and Modifying Disk-based Caching&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Disk-based caching controls caching for binary large objects (BLOBs) such as image, sound, and video files, as well as code fragments. Disk-based caching is extremely fast and eliminates the need for database round trips. BLOBs are retrieved from the database once and stored on the Web client. Further requests are served from the cache and trimmed based on security.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Disk-based caching is disabled by default. To enable and customize the disk-based cache, you must modify the following statement in the web.config file for the SharePoint Web application mapped to the Internet Information Services (IIS) Web site:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Copy Code&lt;br /&gt;&amp;lt;BlobCache location=&amp;quot;C:\blobCache&amp;quot; path=&amp;quot;\.(gif|jpg|png|css|js)$&amp;quot; maxSize=&amp;quot;10&amp;quot; max-age=&amp;quot;86400&amp;quot; enabled=&amp;quot;false&amp;quot;/&amp;gt;&lt;/p&gt;
&lt;p&gt;In the preceding example:&lt;/p&gt;
&lt;p&gt;location is the directory where the cached files will be stored&lt;/p&gt;
&lt;p&gt;path specifies in the form of a regular expression which files are cached based on the file extension&lt;/p&gt;
&lt;p&gt;maxSize is the maximum allowable size of the disk-based cache in gigabytes&lt;/p&gt;
&lt;p&gt;max-age specifies the maximum amount of time in seconds that the client browser caches BLOBs downloaded to the client computer. If the downloaded items have not expired since the last download, the same items are not re-requested when the page is requested. The max-age attribute is set by default to 86400 seconds (that is, 24 hours), but it can be set to a time period of 0 or greater.&lt;/p&gt;
&lt;p&gt;enabled is a Boolean that disables or enables the cache&lt;/p&gt;
&lt;p&gt;Flushing the Disk-based Cache&lt;br /&gt;On the Site Actions menu, point to Site Settings, and then click Modify All Site Settings.&lt;/p&gt;
&lt;p&gt;Under Site Collection Administration, click Site collection object cache.&lt;/p&gt;
&lt;p&gt;In the Disk Based Cache Reset section, do one or more of the following:&lt;/p&gt;
&lt;p&gt;To force the server to reset its disk-based cache, select Force this server to reset its disk based cache.&lt;/p&gt;
&lt;p&gt;To force all servers to reset their disk-based caches, select Force all servers in the farm to reset their disk based cache.&lt;/p&gt;
&lt;p&gt;If you select one or more of the check boxes, all entries in the disk caches are flushed immediately when you click OK. If you do not select any of the check boxes, the disk caches are left unchanged and item expiration is managed, with items being removed when they are changed in the site or when the disk size is exceeded.&lt;/p&gt;
&lt;p&gt;Click OK.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;I thought it would be easier having all the different types of caching for MOSS available in one place. &lt;img src="http://www.sharepointblogs.com/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;&lt;br /&gt;&lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=18303" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/MOSS+2007+Installation/default.aspx">MOSS 2007 Installation</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/MOSS+Cache/default.aspx">MOSS Cache</category></item><item><title>MOSS build 12.0000.6315.5000 Prime Update will be available publicly in June</title><link>http://www.sharepointblogs.com/bobbyhabib/archive/2008/05/27/moss-build-12-0000-6315-5000-prime-update.aspx</link><pubDate>Tue, 27 May 2008 11:51:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:16889</guid><dc:creator>bobbyhabib</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/bobbyhabib/rsscomments.aspx?PostID=16889</wfw:commentRss><comments>http://www.sharepointblogs.com/bobbyhabib/archive/2008/05/27/moss-build-12-0000-6315-5000-prime-update.aspx#comments</comments><description>&lt;p&gt;Hey Community,&lt;/p&gt;
&lt;p&gt;Just to make you all aware that the Prime Rollup update is now available on request for Premier customers if required now, taking you to build 12.0000.6315.5000 and publicly available in June 2008. This hotfix come in the standard way of a WSS fix [KB Article Number(s): 942489, 952698] and a MOSS fix [KB Article Number(s): 942489, 952704]. There are a lot of fixes within this prime rollup from a publishing perspective [CMS].&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Issue:&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;With regards to applying this build 12.0000.6315.5000 once you have applied the fixes that there is an slight issue starting the &amp;quot;SPAdmin Service&amp;quot;. The timeout period for this service is to short and you will &lt;font color="#000000"&gt;get an error in the Event Logs showing an error of&amp;nbsp; &amp;quot;The service process could not connect to the service controller&amp;quot;.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;If you try to manually start this service this is not possible. To successfully start the SPAdmin service you have to modify/add two registry values:&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;1.&amp;nbsp;&lt;strong&gt;HKLM\SYSTEM\CurrentControlSet\Control&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; add/modify DWORD value ServicesPipeTimeout to 60000 (60 seconds) [Make sure the base type is decimal]&lt;br /&gt;2.&amp;nbsp;&lt;strong&gt;HKLM\SYSTEM\CurrentControlSet\Control&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; add/modify STRING value WaitToKillServiceTimeout to 120000 (120 seconds) [Make sure the base type is decimal]&lt;br /&gt;3.&amp;nbsp;Reboot the server&lt;br /&gt;4.&amp;nbsp;Manually start the SPAdmin service using: net start spadmin&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=16889" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/SharePoint+Services+Objects/default.aspx">SharePoint Services Objects</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/MOSS+Version/default.aspx">MOSS Version</category></item><item><title>Getting the correct MOSS / WSS version for each server in the farm</title><link>http://www.sharepointblogs.com/bobbyhabib/archive/2008/05/16/getting-the-correct-moss-wss-version-for-each-server-in-the-farm.aspx</link><pubDate>Fri, 16 May 2008 17:01:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:16552</guid><dc:creator>bobbyhabib</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/bobbyhabib/rsscomments.aspx?PostID=16552</wfw:commentRss><comments>http://www.sharepointblogs.com/bobbyhabib/archive/2008/05/16/getting-the-correct-moss-wss-version-for-each-server-in-the-farm.aspx#comments</comments><description>&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;I have seen a few blogs recently talking about how to get the correct version of MOSS from your server&amp;#39;s in your server farm. &lt;img src="http://www.sharepointblogs.com/emoticons/emotion-7.gif" alt="Tongue Tied" /&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Sound easy enough.&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;What&amp;nbsp;I have seen; are articles telling you to go to the web sites properties&amp;nbsp;of your site collection in IIS and then to select the &lt;strong&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;HTTP Headers&lt;/span&gt;&lt;/strong&gt; tab,&amp;nbsp;here you will see a &amp;quot;Custom HTTP headers&amp;quot; text box which displays a version&amp;nbsp;number of MOSS. GREAT! &lt;/span&gt;
&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;or &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Go to &amp;quot;Add/Remove Programs&amp;quot; within control panel select &amp;quot;Microsoft Office SharePoint Server 2007&amp;quot; and click &amp;quot;Click here for support information&amp;quot;. On the dialog you will see a version number indicating MOSS version. Suppose to be good!&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;If you think this is correct then read on!&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;strong&gt;&lt;u&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;This&amp;nbsp;method of getting the version number for MOSS is not correct. What you will see in the HTTP header tab in IIS is the build version of MOSS at the time when the Virtual Directory [Web Application] was created, if you patch the server with a Service Pack, Hot Fix or a Roll up Fix, the HTTP header tab is not updated with new build version number on existing sites, which can confuse a lot of people.&amp;nbsp;&lt;img src="http://www.sharepointblogs.com/emoticons/emotion-7.gif" alt="Tongue Tied" /&gt; If you create a Web Application [Virtual Directory] after you have patched the server you will get the Build Version number of MOSS, at the time&amp;nbsp;the site is created. I bet&amp;nbsp;most SharePoint veterans&amp;nbsp;must have wondered why one HTTP header on there site collections may have been different to another site collection on the same server. It proberbly because you have created&amp;nbsp;both site collections at different times with different patches applied to your farm.&lt;/span&gt; I noticed that the &amp;quot;Add/Remove Program&amp;quot; method too did not update. 
&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;The correct way to get this information is to open up &amp;quot;Central Admin&amp;quot;, click on &amp;quot;Operations&amp;quot; and then click on &amp;quot;Servers in Farm&amp;quot;. in this administration page you will see the Database Schema Version in the top of the screen and a list of servers with the version numbers listed in the relevant column against each server in the farm. You can also see the database schema version in &amp;quot;Site Settings&amp;quot;, &amp;quot;Modify All Site Settings&amp;quot; in the Site Information section. The other alternative is to look at the MOSS configuration database [SQL Server] of your site collection and open the Versions table, there will be entires in this table with the versions that have been applied to in your farm&amp;nbsp;and the date when the Service Pack, hot Fix or Rollup was applied. &lt;img src="http://www.sharepointblogs.com/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I have listed below the version numbers for MOSS;&lt;/p&gt;
&lt;p&gt;MOSS 2007 or WSS 3.0 Hotfix (KB953484 - KB953473 - KB953471)&amp;nbsp;&amp;nbsp; 12.0.0.6317.500&lt;/p&gt;
&lt;p&gt;MOSS 2007 or WSS 3.0 Hotfix (KB953138 - KB953137)&amp;nbsp;&amp;nbsp; 12.0.0.6316.500 &lt;br /&gt;MOSS 2007 or WSS 3.0 Hotfix (KB952704)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12.0.0.6315.500&lt;/p&gt;
&lt;p&gt;MOSS 2007 or WSS 3.0 post-SP1 hotfix (KB952294)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12.0.0.6314.500 [In SSP admin you will get a new Search Administration option, which brings the Search Server features to MOSS.]&lt;br /&gt;MOSS 2007 or WSS 3.0 post-SP1 hotfix (KB948945)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12.0.0.6303&lt;br /&gt;MOSS 2007 or WSS 3.0 post-SP1 hotfix (KB941274)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12.0.0.6301&lt;br /&gt;MOSS 2007 or WSS 3.0 post-SP1 hotfix (KB941422)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12.0.0.6300&lt;br /&gt;MOSS 2007 or WSS 3.0 SP1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12.0.0.6219&lt;br /&gt;MOSS 2007 or WSS 3.0 October public update&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12.0.0.6039 &lt;br /&gt;MOSS 2007 or WSS 3.0 August 24, 2007 hotfix package&amp;nbsp; 12.0.0.6036 &lt;br /&gt;MOSS 2007 or WSS 3.0 RTM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12.0.0.4518 &lt;br /&gt;MOSS 2007 or WSS 3.0 Beta 2 TR:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12.0.0.4407 &lt;br /&gt;MOSS 2007 or WSS 3.0 Beta 2:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12.0.0.4017&lt;br /&gt;&lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=16552" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/MOSS+Version/default.aspx">MOSS Version</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/Fam+Version/default.aspx">Fam Version</category></item><item><title>Troubleshooting SPSite/SPWeb leaks in WSS v3 and MOSS 2007</title><link>http://www.sharepointblogs.com/bobbyhabib/archive/2008/05/15/troubleshooting-spsite-spweb-leaks-in-wss-v3-and-moss-2007.aspx</link><pubDate>Thu, 15 May 2008 01:41:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:16493</guid><dc:creator>bobbyhabib</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/bobbyhabib/rsscomments.aspx?PostID=16493</wfw:commentRss><comments>http://www.sharepointblogs.com/bobbyhabib/archive/2008/05/15/troubleshooting-spsite-spweb-leaks-in-wss-v3-and-moss-2007.aspx#comments</comments><description>&lt;p&gt;Just wanted to make the community aware of a new blog just written by Stefan Gobner (EE Engineer at Microsoft and also a colleague of mine). He explain very well the steps that can be taken by SharePoint Administrators to isolate if a site that contains custom code, which does not properly dispose objects correctly and also how you can isolate components that are leaking these objects.&lt;/p&gt;
&lt;p&gt;&lt;a class="" title="http://blogs.technet.com/stefan_gossner/archive/2008/05/07/troubleshooting-spsite-spweb-leaks-in-wss-v3-and-moss-2007.aspx" href="http://blogs.technet.com/stefan_gossner/archive/2008/05/07/troubleshooting-spsite-spweb-leaks-in-wss-v3-and-moss-2007.aspx" target="_blank"&gt;http://blogs.technet.com/stefan_gossner/archive/2008/05/07/troubleshooting-spsite-spweb-leaks-in-wss-v3-and-moss-2007.aspx&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Keep up the great work Stefan your a living legend. &lt;img src="http://www.sharepointblogs.com/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=16493" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/Custom+Objects/default.aspx">Custom Objects</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/SPWeb/default.aspx">SPWeb</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/SPSite/default.aspx">SPSite</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/Leaks/default.aspx">Leaks</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/Dispose/default.aspx">Dispose</category></item><item><title>MOSS AntiVirus Guidelines</title><link>http://www.sharepointblogs.com/bobbyhabib/archive/2008/04/22/moss-anti-virus-guidelines.aspx</link><pubDate>Tue, 22 Apr 2008 09:45:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:15588</guid><dc:creator>bobbyhabib</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/bobbyhabib/rsscomments.aspx?PostID=15588</wfw:commentRss><comments>http://www.sharepointblogs.com/bobbyhabib/archive/2008/04/22/moss-anti-virus-guidelines.aspx#comments</comments><description>&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:EN-GB;"&gt;&lt;font face="arial,helvetica,sans-serif"&gt;I find that a lot of companies implementing MOSS into their organisations are not really thinking about Antivirus software that is running at the Operating System level. There are a number of products out there talking about MOSS Antivirus plug in etc, but these plug in are checking for documents that are being pushed into MOSS for viruses.&lt;/font&gt;&lt;/span&gt; 
&lt;p&gt;MS Fore Front Security for SharePoint:&lt;/p&gt;
&lt;p&gt;&lt;u&gt;&lt;font color="#800080"&gt;&lt;a class="" href="http://www.microsoft.com/forefront/sharepoint/en/us/product-overview.aspx" target="_blank"&gt;http://www.microsoft.com/forefront/sharepoint/en/us/product-overview.aspx&lt;/a&gt;&lt;/font&gt;&lt;/u&gt;&lt;a class="" href="http://www.microsoft.com/forefront/sharepoint/en/us/default.aspx" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;McAfee:&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="http://us.trendmicro.com/us/products/enterprise/portalprotect/index.html" target="_blank"&gt;http://us.trendmicro.com/us/products/enterprise/portalprotect/index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;But there seems to be a big area that companies are forgetting about, that can effect the stability of MOSS servers and cause a lot of issues that really confuse IT professionals.&amp;nbsp;The OPERATING SYSTEM ANTIVIRUS. &lt;img src="http://www.sharepointblogs.com/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;/p&gt;
&lt;p&gt;To rule out any interference that the operating system antivirus software might bring to SharePoint&amp;#39;s stability, the following exclusions from the antivirus real-time scan are recommended:&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:6pt 0cm 3pt 10.65pt;TEXT-INDENT:-10.65pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="arial,helvetica,sans-serif"&gt;&lt;u&gt;Windows 2003 Server&lt;/u&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:6pt 0cm 3pt 10.65pt;TEXT-INDENT:-10.65pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;"&gt;The %systemroot% is normally the C:\WINDOWS or C:\WINNT directory depending on your OS&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;"&gt;%systemroot%\System32\Spool (and all the sub-folders and files)&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;"&gt;%systemroot%\SoftwareDistribution\Datastore&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;"&gt;Any Network Drives that are mapped&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;Refer to the following article for information:&lt;/span&gt; 
&lt;p&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Arial;mso-fareast-language:JA;mso-ansi-language:EN-AU;mso-bidi-language:AR-SA;"&gt;KB822158 - Virus scanning recommendations for computers that are running Windows &lt;br /&gt;Server 2003, Windows 2000, or Windows XP &lt;a class="" href="http://support.microsoft.com/kb/822158" target="_blank"&gt;&lt;font color="#0000ff"&gt;http://support.microsoft.com/kb/822158&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="arial,helvetica,sans-serif"&gt;&lt;u&gt;Internet Information Server&lt;/u&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;/span&gt;&lt;/span&gt;•&amp;nbsp;The IIS compression directory (default compression directory is %systemroot%\IIS Temporary Compressed Files)&lt;br /&gt;•&amp;nbsp;%systemroot%\system32\inetsrv folder&lt;br /&gt;•&amp;nbsp;Files that have the .log extension&lt;br /&gt;Refer to the following knowledge base articles for reference: &lt;br /&gt;KB817442 - IIS 6.0: Antivirus Scanning of IIS Compression Directory May Result in 0-Byte File&lt;br /&gt;&lt;a class="" href="http://support.microsoft.com/kb/817442" target="_blank"&gt;http://support.microsoft.com/kb/817442&lt;/a&gt;&lt;br /&gt;KB821749 - Antivirus software may cause IIS to stop unexpectedly &lt;a class="" href="http://support.microsoft.com/kb/821749" target="_blank"&gt;http://support.microsoft.com/kb/821749&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="arial,helvetica,sans-serif"&gt;&lt;u&gt;SQL Server&lt;/u&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;•&amp;nbsp;Exclude .MDF, .LDF, .NDF, .TRN, .BAK and .SLS&lt;br /&gt;•&amp;nbsp;Exclude sqlmangr.exe and sqlservr.exe&lt;br /&gt;•&amp;nbsp;SQL folder and databases files (or database file types) from scanning for performance reasons:&lt;br /&gt;KB309422 - Guidelines for choosing antivirus software to run on the computers that are running SQL Server &lt;a class="" href="http://support.microsoft.com/kb/309422" target="_blank"&gt;http://support.microsoft.com/kb/309422&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="arial,helvetica,sans-serif"&gt;&lt;u&gt;WSS 3,0 / MOSS 2007&lt;/u&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;•&amp;nbsp;Drive:\Program Files\Microsoft Office Servers\12.0&lt;br /&gt;•&amp;nbsp;Drive:\Program Files\Common Files\Microsoft Shared\web server extensions\12&lt;br /&gt;•&amp;nbsp;Drive:\DOCUME~1\ALLUSE~1\APPLICATION DATA\MICROSOFT\FIREWALL CLIENT\*&lt;br /&gt;•&amp;nbsp;Drive:\WINDOWS\Temp\WebTempDir\*&lt;br /&gt;•&amp;nbsp;Drive:\DOCUMENTS AND SETTINGS\&amp;lt;SPSServiceAccount&amp;gt;\LOCAL SETTINGS\APPLICATION DATA\*&lt;br /&gt;•&amp;nbsp;Drive:\Documents and Settings\\&amp;lt;SPSServiceAccount&amp;gt;\Local Settings\Temp\*&lt;br /&gt;•&amp;nbsp;Drive:\WINDOWS\system32\LogFiles&lt;br /&gt;•&amp;nbsp;W3wp.exe, cbd.exe, cidaemon.exe, owstimer.exe (WSS)&lt;br /&gt;(where Drive: is the drive letter where you installed SharePoint Portal Server)&lt;br /&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:6pt 0cm 3pt 10.65pt;TEXT-INDENT:-10.65pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:6pt 0cm 3pt 10.65pt;TEXT-INDENT:-10.65pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Arial"&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;u&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="arial,helvetica,sans-serif"&gt;&lt;u&gt;MOM&lt;/u&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Arial"&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;u&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;"&gt;Drive:\Documents and Settings\All Users\Application Data\Microsoft\Microsoft Operations Manager&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:6pt 0cm 3pt 10.65pt;TEXT-INDENT:-10.65pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;"&gt;Drive:\Program Files\Microsoft Operations Manager 2005&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:9pt;LINE-HEIGHT:110%;"&gt;&lt;/span&gt;&amp;nbsp; 
&lt;p&gt;&lt;u&gt;If you are using Trend Micro the follow these guide lines:&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;•&amp;nbsp;Temp folder:&amp;nbsp; C:\Program Files\Trend Micro\PortalProtect\temp&lt;br /&gt;•&amp;nbsp;Quarantine folder, whose default location is: &lt;br /&gt;Drive:\Program Files\Trend Micro\PortalProtect\Quarantine&lt;br /&gt;•&amp;nbsp;Backup folder, whose default location is:&lt;br /&gt;Drive:\Program Files\Trend Micro\PortalProtect\Backup&lt;/p&gt;
&lt;p&gt;The following link will provide you how you can configure MOSS anti-virus, not Operating System Anti-Virus.&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="http://technet2.microsoft.com/Office/f/?en-us/library/1289e6e2-03e0-4f10-8921-e516187891c61033.mspx" target="_blank"&gt;http://technet2.microsoft.com/Office/f/?en-us/library/1289e6e2-03e0-4f10-8921-e516187891c61033.mspx&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;One of my recomendation before logging Microsoft PSS calls is to make sure you have these guidelines applied in your environment, this could save a lot of&amp;nbsp; time &amp;amp; money with regard to support issues. I hope this helps. &lt;img src="http://www.sharepointblogs.com/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;&lt;/p&gt;
&lt;p&gt;I thought I would add this to the post; the offical KB article associated to &amp;quot;Folders may have to be excluded from antivirus scanning when you use a file-level antivirus program in Windows SharePoint Services 3.0 or in SharePoint Server 2007&amp;quot;: &lt;a class="" title="http://support.microsoft.com/kb/952167" href="http://support.microsoft.com/kb/952167"&gt;&lt;font color="#aa77aa"&gt;http://support.microsoft.com/kb/952167&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=15588" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/MOSS+2007+Antivirus/default.aspx">MOSS 2007 Antivirus</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/File+Level+Antivirus/default.aspx">File Level Antivirus</category></item><item><title>MOSS - Error : Unable to find an entry point named 'OshFGetSafeHtmLAllocForManaged3' in DLL 'osafehtm.dll'</title><link>http://www.sharepointblogs.com/bobbyhabib/archive/2008/04/03/moss-error-unable-to-find-an-entry-point-named-oshfgetsafehtmlallocformanaged3-in-dll-osafehtm-dll.aspx</link><pubDate>Thu, 03 Apr 2008 22:09:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:14890</guid><dc:creator>bobbyhabib</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/bobbyhabib/rsscomments.aspx?PostID=14890</wfw:commentRss><comments>http://www.sharepointblogs.com/bobbyhabib/archive/2008/04/03/moss-error-unable-to-find-an-entry-point-named-oshfgetsafehtmlallocformanaged3-in-dll-osafehtm-dll.aspx#comments</comments><description>&lt;p&gt;This is not a pretty error and can make you run around the house&amp;#39;s trying to figure&amp;nbsp;out what the hell is going on. &lt;img src="http://www.sharepointblogs.com/emoticons/emotion-7.gif" alt="Tongue Tied" /&gt; &lt;/p&gt;
&lt;p&gt;The exception tend to occurs when&amp;nbsp;you try to publish changes on a site page within MOSS.&lt;/p&gt;
&lt;p&gt;You normally see the following error stack:&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;“Application error when access /_layouts/AddNavigationLinkDialog.aspx, Error=&lt;a class="" title="#h306" name="#h306"&gt;&lt;/a&gt;&lt;b&gt;Unable&lt;/b&gt; &lt;br /&gt;&lt;a class="" title="#h307" name="#h307"&gt;&lt;/a&gt;&lt;b&gt;to&lt;/b&gt; &lt;a class="" title="#h308" name="#h308"&gt;&lt;/a&gt;&lt;b&gt;find&lt;/b&gt; an &lt;a class="" title="#h309" name="#h309"&gt;&lt;/a&gt;&lt;b&gt;entry&lt;/b&gt; &lt;a class="" title="#h310" name="#h310"&gt;&lt;/a&gt;&lt;b&gt;point&lt;/b&gt; &lt;a class="" title="#h311" name="#h311"&gt;&lt;/a&gt;&lt;b&gt;named&lt;/b&gt; &amp;#39;&lt;a class="" title="#h312" name="#h312"&gt;&lt;/a&gt;&lt;b&gt;OshFGetSafeHTMLAllocForManaged3&lt;/b&gt;&amp;#39; &lt;a class="" title="#h313" name="#h313"&gt;&lt;/a&gt;&lt;b&gt;in&lt;/b&gt; &lt;a class="" title="#h315" name="#h315"&gt;&lt;/a&gt;&lt;a class="" title="#h314" name="#h314"&gt;&lt;/a&gt;&lt;b&gt;DLL&lt;/b&gt; &lt;br /&gt;&amp;#39;&lt;a class="" title="#h316" name="#h316"&gt;&lt;/a&gt;&lt;b&gt;osafehtm&lt;/b&gt;.&lt;a class="" title="#h318" name="#h318"&gt;&lt;/a&gt;&lt;a class="" title="#h317" name="#h317"&gt;&lt;/a&gt;&lt;b&gt;dll&lt;/b&gt;&amp;#39;. at &lt;br /&gt;Microsoft.SharePoint.Publishing.Fields.SafeHtmlWra&lt;img src="http://www.sharepointblogs.com/emoticons/emotion-3.gif" alt="Surprise" /&gt;pper.NativeMethods.OshFGetSafeHTML&lt;br /&gt;AllocForManaged3(Byte[] htmlSourceBytes, Int32 htmlSourceBytesSize, Int32 &lt;br /&gt;htmlSourceCodePage, Byte** htmlReturnedBytes, Int32&amp;amp; htmlReturnedBytesSize, Int32 &lt;br /&gt;convertToDestinationCodePage, Int32 safeHtmlBehaviorFlags, String[] tagsToHandle, &lt;br /&gt;Int32[] tagHandlingFlags, Int32 tagHandlingCount, Int32&amp;amp; tagHandlingResultFlags, &lt;br /&gt;EditOrDropUrlsDelegate urlHandlingCallback, Boolean&amp;amp; isSafeHtml) at &lt;br /&gt;Microsoft.SharePoint.Publishing.Fields.SafeHtmlWrapper.GetSafeHtml(String &lt;br /&gt;stylecopStringUnsafeHtml, Int32 safeHtmlBehaviorFlags, Hashtable tagsAndFlags...”&lt;br /&gt;&lt;br style="mso-special-character:line-break;" /&gt;Now I have seen a lot of people using a temporary work around for this which is, to run from a command line &amp;quot;&lt;strong&gt;psconfig.exe -cmd&amp;nbsp;secureresources&lt;/strong&gt;&amp;quot; and then a &lt;strong&gt;iisreset&lt;/strong&gt;. &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;Well this is interesting because this seems to cure the issue for about 24 hours and then the issue seems to arise again. Oh my god! The business impact this must be having on some of the companies out there. &lt;img src="http://www.sharepointblogs.com/emoticons/emotion-3.gif" alt="Surprise" /&gt; Now the secureresources command performs SharePoint Products and Technologies resource security enforcement on the server. For example, security is enforced on files, folders, and registry keys. So why would something like this cure the issue for about 24 hours. I was amazed. &lt;img src="http://www.sharepointblogs.com/emoticons/emotion-3.gif" alt="Surprise" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;So lets look at this in a bit more detail. The stack trace shows an error with &lt;strong&gt;OshFGetSafeHTMLAllocForManaged3 &lt;/strong&gt;which tells us that the dll used here is &lt;strong&gt;osafehtm.dll&lt;/strong&gt;. This dll is a MOSS wrapper assembly used with the HTML controls on site pages and is used widely across the MOSS&amp;nbsp;UI pages.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;The &lt;strong&gt;OshFGetSafeHTMLAllocForManaged3 &lt;/strong&gt;function is used mainly when there are pages that are using image or hyperlink HTML controls on a page. Also to note that the &lt;strong&gt;osafehtm.dll&lt;/strong&gt; resides in the following directory in MOSS &lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\BIN\ directory. When I looked closely at the server configuration which the exception occurred I also noticed &lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\BIN\ directory. And as soon as I took a peak in this directory I noticed the office 11 version of the &lt;strong&gt;osafehtm.dll&lt;/strong&gt; in this directory. Bingo! Renamed the file to z_osafehtm.dll and ran a iisreset /restart the error never did occur again. &lt;img src="http://www.sharepointblogs.com/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt; Infact I renamed the 60 directory to z_60.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;&lt;strong&gt;&amp;nbsp;So here&amp;#39;s the logic&lt;/strong&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;1. The error seems to only occur on&amp;nbsp;configurations that have been upgraded from SPS2003 to MOSS.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;2. With the upgrade both the &lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\BIN\ and &lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\BIN\ are defined paths, which means the incorrect dll can be loaded.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;&lt;strong&gt;So why does it work for 24 hours after you run psconfig.exe securedresources and a IISReset:&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;I think this is because the secured resources must force 12\bin directory path to be read and loads the correct version of the osafehtm.dll assembly and the IISReset will reset all cached assemblies that are loaded in memory or cached by IIS. Within 24 hours the Application Pool will recycle itself if the default setting for the application pook are configured and at this point there are two different versions of the assembly that now can be loaded because the &lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\BIN\ is also a defined path and MOSS then loads the incorrect version of &lt;strong&gt;osafehtm.dll&lt;/strong&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=14890" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/MOSS+2007+Installation/default.aspx">MOSS 2007 Installation</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/MOSS+Upgrades/default.aspx">MOSS Upgrades</category></item><item><title>Create a Google Map Web Part for Free</title><link>http://www.sharepointblogs.com/bobbyhabib/archive/2007/12/05/create-a-google-map-web-part-for-free.aspx</link><pubDate>Wed, 05 Dec 2007 11:13:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:9504</guid><dc:creator>bobbyhabib</dc:creator><slash:comments>49</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/bobbyhabib/rsscomments.aspx?PostID=9504</wfw:commentRss><comments>http://www.sharepointblogs.com/bobbyhabib/archive/2007/12/05/create-a-google-map-web-part-for-free.aspx#comments</comments><description>&lt;p&gt;&lt;span style="FONT-SIZE:180%;"&gt;So you are looking at creating a google map web part for your MOSS web site and for FREE and done in minutes.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:180%;"&gt;&lt;/span&gt;&amp;nbsp;&lt;a href="http://bp2.blogger.com/_5cLFWvnbr3A/R1aGggHMKXI/AAAAAAAAAA0/irArnNEKpOc/s1600-h/webpart_googlemap.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5140443917624027506" style="CURSOR:hand;" alt="" src="http://bp2.blogger.com/_5cLFWvnbr3A/R1aGggHMKXI/AAAAAAAAAA0/irArnNEKpOc/s320/webpart_googlemap.gif" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Well this can be achieved in minutes and you could surprise yourself! There is no special development required to achieve this, just a little bit of HTML, a link out to the web from your MOSS server as the google map api will need to communicate to the google map server and a google API key which you can request from &lt;a href="http://www.google.com/apis/maps/signup.html"&gt;here&lt;/a&gt;. The google API key, is a key that will be mailed to you from google, once you have submitted the google api key form, you will need to agree to Google Standard Terms and Conditions and provide the URL of your MOSS site. &lt;strong&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;PreReq&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;1. MOSS Server &lt;/p&gt;
&lt;p&gt;2. Goggle API Key &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;How Too&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;1. Open a Moss site where you would like to place your Goggle Map web part. &lt;/p&gt;
&lt;p&gt;2. Place a Content Editor Web Part in the Page of the site. &lt;/p&gt;
&lt;p&gt;3. Edit the content Editor Web Part and in the proerties of this web part open the source editor. &lt;u&gt;Do not use the Rich Text Editor.&lt;/u&gt; &lt;/p&gt;
&lt;p&gt;4. Copy and paste the folloing code in the sorce editor: &lt;/p&gt;
&lt;div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&amp;lt;script src=&amp;quot;http://maps.google.com/maps?file=api&amp;amp;v=1&amp;amp;key=ADD_YOUR_GOGGLE_API_KEY_HERE&amp;quot; mce_src=&amp;quot;http://maps.google.com/maps?file=api&amp;amp;v=1&amp;amp;key=ADD_YOUR_GOGGLE_API_KEY_HERE&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;lt;/script&amp;gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;lt;div id=&amp;quot;map&amp;quot; style=&amp;quot;width: 400px;height:300px&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;var map = new GMap(document.getElementById(&amp;quot;map&amp;quot;)); map.centerAndZoom(new GPoint(-0.160265, 51.51443), 3); &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;lt;/script&amp;gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;5. Apply and OK. &lt;/p&gt;
&lt;p&gt;6. And Voila! &lt;/p&gt;
&lt;p&gt;There is a good site that will get you the latitude and longitude coordinates of your desired location, that will be used when communicating to the google map server: &lt;/p&gt;
&lt;p&gt;&lt;a href="http://geo.localsearchmaps.com/?street=45+Oxford+Street&amp;amp;city=London&amp;amp;country=UK"&gt;http://geo.localsearchmaps.com/?street=45+Oxford+Street&amp;amp;city=London&amp;amp;country=UK&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notice&lt;/strong&gt; in the above URL you send the Building Number &amp;amp; the street, city, country and the site will return a text page of the latitude and longitude co-ordinates that you can use, for your desired location. &lt;/p&gt;
&lt;p&gt;If you want to add scaling and repositioning to your web part then add the following into your code, after the var map = ...... Line: &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;map.addControl(new GLargeMapControl());&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This web part can be achieved in a matter of a few minutes and can save you some money, I have seen companies charging $400.00 for this. &lt;img src="http://www.sharepointblogs.com/emoticons/emotion-3.gif" alt="Surprise" /&gt;&lt;/p&gt;
&lt;p&gt;You can also add mapping markers and Location descriptions into your web part very easily. I will write another post showing this. &lt;img src="http://www.sharepointblogs.com/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=9504" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/Web+Part/default.aspx">Web Part</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/Web+Part+Development/default.aspx">Web Part Development</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/Google+Maps/default.aspx">Google Maps</category></item><item><title>Closing of the SPWeb or SPSite Object within Web Part Development</title><link>http://www.sharepointblogs.com/bobbyhabib/archive/2007/11/28/closing-of-the-spweb-or-spsite-object-within-web-part-development.aspx</link><pubDate>Wed, 28 Nov 2007 13:07:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:9224</guid><dc:creator>bobbyhabib</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/bobbyhabib/rsscomments.aspx?PostID=9224</wfw:commentRss><comments>http://www.sharepointblogs.com/bobbyhabib/archive/2007/11/28/closing-of-the-spweb-or-spsite-object-within-web-part-development.aspx#comments</comments><description>&lt;p&gt;I wrote a base class for one of my clients and started to gather some web part information within my base class inheritted from my Web Part. I started to use the base class and it worked well, until I wanted to edit the web part and tried to change some of the properties attached to the web part. As soon as I applied the changes I would get an error of, &amp;quot;The SPWeb object is no longer valid&amp;quot;. Looking through my code I realised I was explicitly closing the spweb object in a final statement. Code looked like this;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPWeb oSite = SPControl.GetContextWeb(Context);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return oSite.ID.ToString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception exm)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new Exception(exm.Message);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oSite.Dispose();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I removed the oSite.Disposed from my finally section and it all worked. &lt;img src="http://www.sharepointblogs.com/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;/p&gt;
&lt;p&gt;What I realised was that when you are using the Current Context to create a spweb object, you should not close or dispose of the object, or use it within a using statement, &lt;em&gt;[using statement automatically call&amp;#39;s the dispose method at the end of the using section]&lt;/em&gt; because other places within your&amp;nbsp;site page will more then likely want to use this object. E.G when you want to change a property of a web part, etc...&lt;/p&gt;
&lt;p&gt;There is a great article on &lt;a class="" href="https://msdn2.microsoft.com/en-us/library/aa973248.aspx"&gt;MSDN&lt;/a&gt; that provides developers with best practices of disposing sharepoint services object.&lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=9224" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/Base+Class/default.aspx">Base Class</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/Web+Part/default.aspx">Web Part</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/SharePoint+Services+Objects/default.aspx">SharePoint Services Objects</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/Web+Part+Development/default.aspx">Web Part Development</category></item><item><title>Broken SharePoint Site Page</title><link>http://www.sharepointblogs.com/bobbyhabib/archive/2007/11/23/broken-sharepoint-site-page.aspx</link><pubDate>Fri, 23 Nov 2007 11:42:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:9063</guid><dc:creator>bobbyhabib</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/bobbyhabib/rsscomments.aspx?PostID=9063</wfw:commentRss><comments>http://www.sharepointblogs.com/bobbyhabib/archive/2007/11/23/broken-sharepoint-site-page.aspx#comments</comments><description>&lt;p&gt;If you ever find that one of your web parts are erroring on a particular site because some custom web part is throwing an exception and stops the site page from loading then one of the first thing you should do is try adding &lt;strong&gt;&lt;em&gt;contents=1&lt;/em&gt;&lt;/strong&gt; to the end of the url for the site you are trying to access.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://%3csharepoint/"&gt;&lt;strong&gt;http://&amp;lt;SharePoint&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; Server&amp;gt;/Pages/&amp;lt;Site Name&amp;gt;/default.aspx?contents=1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This will load a web part maintenance page for that site, from here you can remove the erroring web part from the site page.&lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=9063" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/Web+Part/default.aspx">Web Part</category><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/Web+Part+Maintenance/default.aspx">Web Part Maintenance</category></item><item><title>SharePoint End User Training Kit - Available Now - No Cost</title><link>http://www.sharepointblogs.com/bobbyhabib/archive/2007/10/16/sharepoint-end-user-training-kit-available-now-no-cost.aspx</link><pubDate>Tue, 16 Oct 2007 00:25:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:7370</guid><dc:creator>bobbyhabib</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/bobbyhabib/rsscomments.aspx?PostID=7370</wfw:commentRss><comments>http://www.sharepointblogs.com/bobbyhabib/archive/2007/10/16/sharepoint-end-user-training-kit-available-now-no-cost.aspx#comments</comments><description>&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font size="3"&gt;Information Provided by&amp;nbsp;&amp;nbsp;&lt;strong&gt;Microsoft SharePoint&amp;nbsp;Product &amp;amp; Technologies Team&lt;/strong&gt;:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font size="3"&gt;The &lt;strong&gt;&lt;span style="FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;SharePoint End User Training Kit &lt;/span&gt;&lt;/strong&gt;is Microsoft ShairePoint&amp;nbsp;Product &amp;amp; Technologies offering for End User Material and it&amp;#39;s available at no cost!&lt;/font&gt;&lt;/span&gt; 
&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font size="3"&gt;The initial release of the kit includes training content for SharePoint&amp;#39;s collaboration capabilities. To be added over the next couple of months are additional modules covering portals and personalization, enterprise content management, search, business processes, and business intelligence. All of the content will have been written by the Office Online User Assistance team.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font size="3"&gt;Grab it Here &lt;a href="http://www.codeplex.com/slk"&gt;http://www.codeplex.com/slk&lt;/a&gt; &lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font size="3"&gt;The kit will be provided with two deployment options. The first, which is available now, is via the &lt;/font&gt;&lt;a href="http://www.codeplex.com/SLK" target="_blank"&gt;&lt;font size="3"&gt;SharePoint Learning Kit&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; (&amp;quot;SLK&amp;quot;), which is SCORM 2004 conformant e-learning delivery and tracking application built as a WSS 3.0 solution. With the SLK, IT personnel can control the look and feel of the training kit, matching it to corporate branding standards, and administrators can add or remove content and customize it as necessary. The SLK also provides a reporting function that shows which topics have been completed and by whom. &lt;/font&gt;&lt;/span&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA;"&gt;The SharePoint End User Training Kit will also have a standalone deployment option, which can be installed on a PC and used by an individual. This version of the kit will be available within the next few weeks.&lt;/span&gt;&lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=7370" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/bobbyhabib/archive/tags/SharePoint+End+User+Training+Kit/default.aspx">SharePoint End User Training Kit</category></item><item><title>Creating your own custom Base Class with your own MOSS Web Part</title><link>http://www.sharepointblogs.com/bobbyhabib/archive/2007/10/16/creating-your-own-custom-base-class-with-your-own-web-part.aspx</link><pubDate>Mon, 15 Oct 2007 23:10:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:7368</guid><dc:creator>bobbyhabib</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/bobbyhabib/rsscomments.aspx?PostID=7368</wfw:commentRss><comments>http://www.sharepointblogs.com/bobbyhabib/archive/2007/10/16/creating-your-own-custom-base-class-with-your-own-web-part.aspx#comments</comments><description>&lt;p&gt;&lt;img src="http://www.sharepointblogs.com/emoticons/emotion-5.gif" alt="Wink" /&gt; I had a requirement that&amp;nbsp;required me to create a custom base for web parts to provide a common library for web part development within MOSS. I started to research on how this could be done and found very little information that explained the whole process of trying to&amp;nbsp;achieve this and literally any form of reference to this topic in the 3.0 WSS SDK August 2007 did not exist. So I needed to do something to assist the development community.&lt;/p&gt;
&lt;p&gt;So lets cut the chase and start showing you how this is done.&lt;/p&gt;
&lt;p&gt;Firstly we need to create a new class project&amp;nbsp;within Visual Studio and lets call this WebPartBase. In this example we will retrieve the webpart id and&amp;nbsp;title of the webpart&amp;nbsp;and place this in a protected string called WebPartID and WebPartTitle, I have also included some of the site properties into the base class. Our Base class will inherit from the &lt;font face="Courier New" size="1"&gt;System.Web.UI.WebControls.WebParts.WebPart&lt;/font&gt; base class, which is the base class Microsoft provide you to inherit for developing web parts. Our custom web part will inherit our custom base class, which for the purpose of the blog will only be&amp;nbsp;two properties from the webpart and three properties from the Site object and place them into a strings. As soon as we inherit our base class we automatically inherit these strings into our web part. When we put this into perspective, you have the whole .Net framework their available to you as a developer that could be used as a&amp;nbsp;library for comon tasks that you may require for all your web part development. e.g. Application Logging, Standardise on variable name&amp;#39;s across your Line of Business applications for all web parts, custom behaviour across the board for all web parts, etc. I think you get the picture. &lt;img src="http://www.sharepointblogs.com/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;/p&gt;
&lt;p&gt;Lets Get Started.&lt;/p&gt;
&lt;p&gt;1. Create New Class Project within Visual Studio 2005 and call this WebPartBase.&lt;/p&gt;
&lt;p&gt;Add the following bit of code into your WebPartBase class so it should like something like this.&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier" size="1"&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Web;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;font face="courier new,courier" size="1"&gt;using Microsoft.SharePoint;&lt;br /&gt;using Microsoft.SharePoint.WebControls;&lt;br /&gt;using Microsoft.SharePoint.WebPartPages;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;font face="courier new,courier" size="1"&gt;namespace bobby.habib.base&lt;br /&gt;{&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class PortletBase : System.Web.UI.WebControls.WebParts.WebPart&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Public default constructor.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public PortletBase()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region Web Part Settings&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected string WebPartID&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return base.ID;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected string WebPartTitle &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return base.DisplayTitle; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region Site Settings&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected string SiteID&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPWeb oSite = SPControl.GetContextWeb(Context);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return oSite.ID.ToString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception exm)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new Exception(exm.Message);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oSite.Dispose();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception ex)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new Exception(ex.Message);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected string SiteTitle&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPWeb oSite = SPControl.GetContextWeb(Context);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return oSite.Title;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception exm)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new Exception(exm.Message);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oSite.Dispose();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception ex)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new Exception(ex.Message);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected string SiteName&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPWeb oSite = SPControl.GetContextWeb(Context);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbs