<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7442443352896192481</id><updated>2011-11-27T15:49:42.552-08:00</updated><category term='SharePoint'/><category term='Debugging'/><category term='SharePoint site cloning'/><category term='SharePoint Services / Foundation'/><category term='WPF'/><category term='Event Properties'/><category term='missing window1.xaml'/><category term='backup'/><category term='merge'/><title type='text'>RobC's Ruminations</title><subtitle type='html'>Afterthoughts on design/coding/testing problems that try and have tried my patience.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rcrewson.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7442443352896192481/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://rcrewson.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rob C</name><uri>http://www.blogger.com/profile/07793353431334205298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_qg8NYeCPPZE/SoWedYegwkI/AAAAAAAAAAU/b8tJoyPfMo8/S220/rwc.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7442443352896192481.post-1691813910875851370</id><published>2010-05-28T10:41:00.000-07:00</published><updated>2010-05-28T11:19:30.147-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Services / Foundation'/><title type='text'>SharePoint Site Collection Recovery</title><content type='html'>This blog is a rework of a 'grok talk' presentation I gave in early may at the Cincinnati SharePoint Users group. I have used this same methodology to move or copy my SharePoint development site to new machines including from SQL Server 9.0&amp;nbsp;0 32bit to SQL Server 10.5 64 bit (although it wanted an upgrade to the database files&amp;nbsp;before it would add them to the farm). It was suggested that all this could be set up with PowerShell. I would agree that this is possible. However, the first step would be setting up a PowerShell script to periodically capture the necessary data to drive the creation script. If I do this I will add a notice to this&amp;nbsp; inro section.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: blue; font-size: x-large;"&gt;SharePoint Site Collection Recovery&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SCOPE&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• DOES NOT &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&amp;nbsp;- Recover from a failed database server&lt;br /&gt;&lt;div&gt;&amp;nbsp;- Farm scoped features that are not part of the Microsoft farm provisioning.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• DOES&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;- Recover/Move Existing SharePoint site collections. This includes user defines site collection columns and user defined site collection content types.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;strong&gt;FAILURE SCENARIOS&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• You hate ‘Guids’ in database names (and app pools in 2010) that the wizard creates!&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• You need to bring up or move to a new box for some reason .&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• SharePoint Server Failure.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Primarily with small farms without server redundancy.&amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;Unintended disconnection from Farm and subsequent deletion of All Web apps by the&amp;nbsp;&amp;nbsp;&amp;nbsp; ‘SharePoint&amp;nbsp;Products and Technology’ wizard.&lt;/li&gt;&lt;li&gt;When uninstalling SQL Search Express 2005!&lt;/li&gt;&lt;li&gt;&amp;nbsp;Brain was a weapon… AKA one click too many!&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;strong&gt;WHY DOES IT WORK&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Because the content of the site collections are stored in separate database(s) from the Farm database.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Deletion of the web apps does not delete the web folders created under ‘C:\inetpub\wwwroot\wss\VirtualDirectories’. Specifically, this means the latest incarnation of each Webs ‘web-config’ still exists.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Hence, to recover the site collection, one only needs to recreate the web app with properties (bindings &amp;amp; content database, etc) exactly like the original one(s) to re-attach them. This is possible because the ‘Create web app’ option allows naming an existing database. &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• However, custom and third party ‘Farm Scoped Features’ are likely not recoverable just as they are not likely upgradable!&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• There are some tables in the old farm database (DB) that can be copied to the new farm DB (such as Users) if It Is deemed more expedient because of number of entries, etc.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• The name of the new farm configuration DB does not have to match the old DB name. The others do.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;strong&gt;ANTICIPATION&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;The following screen shots represent the minimum data required to rebuild the farm topology. &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;Periodically Save by Cut &amp;amp; Paste (may be done optionally by PowerShell function in future).&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&amp;nbsp;Use this&amp;nbsp;page from Site Settings at the home level, to see the Site Hierarchy page&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qg8NYeCPPZE/S_sdqaqBQXI/AAAAAAAAABo/0eJtVxpZv6U/s1600/CropperCapture%5B5%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gu="true" src="http://4.bp.blogspot.com/_qg8NYeCPPZE/S_sdqaqBQXI/AAAAAAAAABo/0eJtVxpZv6U/s320/CropperCapture%5B5%5D.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;A View of What Was in IIS&lt;/div&gt;&lt;br /&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;It helps if the names contain the site collection name.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qg8NYeCPPZE/S_scltqfgfI/AAAAAAAAABg/HvVFnPVkxng/s1600/CropperCapture%5B1%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gu="true" height="332" src="http://3.bp.blogspot.com/_qg8NYeCPPZE/S_scltqfgfI/AAAAAAAAABg/HvVFnPVkxng/s400/CropperCapture%5B1%5D.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qg8NYeCPPZE/S_saddYpmYI/AAAAAAAAABI/Ow1TRArz7bk/s1600/CropperCapture%5B2%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gu="true" height="240" src="http://4.bp.blogspot.com/_qg8NYeCPPZE/S_saddYpmYI/AAAAAAAAABI/Ow1TRArz7bk/s400/CropperCapture%5B2%5D.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;Reviewing Your Existing DB Names&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;Hopefully you edited the database name in the create web application form and used meaningful choices&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qg8NYeCPPZE/S_saXpSWuVI/AAAAAAAAABA/tNf5rmGy8vI/s1600/CropperCapture%5B3%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gu="true" height="372" src="http://2.bp.blogspot.com/_qg8NYeCPPZE/S_saXpSWuVI/AAAAAAAAABA/tNf5rmGy8vI/s400/CropperCapture%5B3%5D.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;Alternate Access Mappings&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qg8NYeCPPZE/S_saye9WcbI/AAAAAAAAABY/D2M8lrHjR0M/s1600/CropperCapture%5B4%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gu="true" height="275" src="http://1.bp.blogspot.com/_qg8NYeCPPZE/S_saye9WcbI/AAAAAAAAABY/D2M8lrHjR0M/s400/CropperCapture%5B4%5D.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;The Proverbial Hive &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qg8NYeCPPZE/S_sYmD2uB6I/AAAAAAAAAA4/uSxY03ZP2F8/s1600/CropperCapture%5B7%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gu="true" height="155" src="http://4.bp.blogspot.com/_qg8NYeCPPZE/S_sYmD2uB6I/AAAAAAAAAA4/uSxY03ZP2F8/s400/CropperCapture%5B7%5D.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;strong&gt;PREPARATION&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;The following steps MUST be executed in the order presented in order to avoid having to redo them because of failures such as databases not being empty or the wrong collation.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;============================================================================ &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Collect all screen shots, reports, together &amp;amp; order them basically in the order presented above.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Using the ISS 6/7 management tool review and note all/any host header bindings and associated ports for each SharePoint web app.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Using whatever tool you have, review the actual existing SharePoint database names &amp;amp; make any corrections to your printed copy.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• If you do not have a working directory at the 12/14 hive level then create one the called [Anything You Like] (Good for PowerShell Scripts As Well). &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Next create a shortcut for It. Move the shortcut to the desktop for expediency.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Click on the shortcut and add a new text file called ‘build_farm.bat’.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Again using your favorite editor, cut &amp;amp; paste the following text into the above File.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;echo off&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;echo "Before you continue, make sure you have recreated your farm And administration databases "&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;echo "with the names as entered below And with a collation of 'Latin1_General_CI_AS_KS_WS'.“&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;echo "NOTE: this collation is specific to SharePoint And does not equal the default collation."&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;pause&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;..\bin\psconfig -cmd configdb -create -server [your servername] -database [WSS_Farm_Config] -user [user who is to be farm admin] -password [farm administrator’s password] -admincontentdatabase [WSS_Admin_Content]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;pause&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Note that when using this script for the 2010 version, an additional parameter called “Passphrase” must be added to the command, where Passphrase is your choice of a string of 8 chars minimum.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Using your favorite editor, cut &amp;amp; paste the following command into a file called ’C:\12hive.bat’ for example ( 14hive for 2010).&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;set prompt=$G&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;cd /D "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\[Whatever you named the new directory]“&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;dir&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;EXECUTION (The brown the meat section)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;strong&gt;1. Installation&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• If Installation of WSS/MOSS Is required (as on a new box) then do this Installation first.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• BUT when the completion screen Is displayed, UNCHECK the checkbox in the lower left that would run the ‘SharePoint Technology and Configuration Wizard’. We definitely do NOT want this to run until After we have created the farm manually. &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;strong&gt;2. Check Services&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• It Is unlikely that any SharePoint services are running, but to avoid database lockouts review the running services and stop any service related to WSS and/or Moss (the Service Names will contain ‘SharePoint’ , ‘Office Server’, or ‘OWSTIMER’ , etc). &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;strong&gt;3. New Farm Database&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• If one wants to use the same name for the farm configuration DB, rename or delete the current farm configuration DB.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Using whatever database management tool you have, delete the current ‘Admin’ content database (DB). &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Now create the new farm DB remembering to change the collation from ‘default’ To ‘Latin1_General_CI_AS_KS_WS’. &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;strong&gt;4. Building the Farm Manually&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Using the ‘12hive/14hive’ shortcut locate the farm build ‘.bat’ script you created earlier in the new scripts directory. &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Open the script in your editor of choice and verify the arguments supplied for ‘server name’, ‘farm admin user name’, ‘admin password’, the farm DB name (just created), and your choice for the Admin content DB Name. Save the changes, then double click the .bat file. &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• The execution of the ‘build.bat’ will execute steps 1-3 of 9 by PSConfig.exe. Thus provisioning the Farm and Admin DBs, resulting in a clean new farm configuration. &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;strong&gt;5. Provisioning the Farm&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• The next step Is to locate ‘PSConfigUI.exe’ (aka: SharePoint Product And Technologies Wizard) in the ‘12hive\bin’ Directory With Windows explorer and double click on It. This will cause all 9 steps to be completed, bringing the Farm up in a state ready for the Admin to create web Apps and connect site collections to databases. &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;strong&gt;6. First Admin Steps&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• This is where having the ‘What Was’ documentation from ANTICIPATION pays off.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Open a console window. Enter ‘iisreset /noforce’. Press return and wait for IIS to reset.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Now launch the ‘Central Administration’ web app from the ‘Administrative Tools’ menu. &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Ignore the whole Issue of completing Email, Servers, etc until later.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Instead, select the ‘Application Management’ option. &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;strong&gt;7. Default Web App Definition&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• From the ‘Site Hierarchy’ and/or ‘Alternate Access Mappings’, and ‘IIS Webs’ screen shots Identify the ‘Default’ zone web apps including their IP Ports, Host Headers and ‘managed paths’ if any. &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• If the ‘default’ zone site collection requires a managed path, create it now.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• To save time in the next step determine the associated site collection name used previously from the page title of the ‘Site Hierarchy’ screen shot.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;strong&gt;8. Create Default Zone Web Application(s)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Then, for each ‘Default’ zone web use the ‘Create or extend Web application’ option to re-create the old Web App making sure to use the correct IP port, host header, content DB name and ‘App Pool’ name as before. (None of these parameters except the IP port number and content DB name is critical but is saves many correction steps later). &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• NOTE: if you forget to change the content DB name then do only the first item of step 9 and then see ‘Appendix 2’ before doing the rest of step 9.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• If the web app create operation is fails and says to add the DB via ‘stsadm.exe’ see ’Appendix 1’ before continuing with step 9.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;strong&gt;9. For Each Web Application&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• If all goes well, after each web app is completed, in the console window enter ‘Up Arrow’ to get the ‘IISReset ’ command back and then press ‘Enter’ to execute the command.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Next using the documentation and the ‘Central Administration-&amp;gt;Application Management -&amp;gt; Create site collection’ option, create the site collection associated with this web app. At this point, using IIS, one should be to browse the whole site collection.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Repeat Items 7 thru 9 for each Web App of the current zone.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;strong&gt;10. For Each Zone Other Than ‘default’&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Next, tackle any ‘Intranet’ zone Web Apps by using the ‘Create or extend web Application‘ option in ‘Extend’ mode with the appropriate Port and Host Header from the documentation by repeating steps 7 thru 9&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• At this point applying the previously defined ‘Alternate Access Mappings’ for the zone in question will enable testing browser access via the local Lan.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Finally, extend the ‘default’ zone Web Apps to all previously defined ‘Extranet’, ‘Custom’, and ‘Internet’ zone web apps by repeating step 10 (which implies 7 thru 9) for each of the required zones in this step. If all the Web Apps for each zone were recreated to the correct port, the respective ‘web-config’s will be valid.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Any third party or internal custom ‘Farm’ scoped features will have to be reapplied now. &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;SIDE NOTE:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• The main purpose of the ‘add content database’ page is to do literally as it says, add a another content data base to the site collection specified on order to allow SharePoint to spread the content load across databases based on the type of content (IE. PDF, office documents , pictures, lists, email, etc ) while the metadata may be intermixed&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;strong&gt;APPENDIX 1&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Create a new text file in the same scripts directory where you put the other ’ .bat’ files.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Cut and paste the following command a new .bat file called ‘add-DB’ for example.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Edit the file replacing the place holders in square braces with the IP port number of your web app , and content DB name.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• When correct, save the file and double click it.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• When successfully added proceed to Appendix 2.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Rem&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;..\bin\sysadm –o addcontentdb -url http://localhost:[wep app port #]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;-databasename [the existing content db name]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;pause&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;strong&gt;APPENDIX 2&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Using the SharePoint Administration Web App select the ‘Application Management&amp;gt;Content Databases’ option.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Using the ‘Web application’ selection box at the top right of the inner panel select the web application you have just added the database to, either by the procedure in ‘Appendix 1’ or in step 8 above. If there is more than 1 database listed only the data base you want to keep show be showing a site count &amp;gt; 0.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• If there is more than 1 data base shown, select the one with the zero site count and it has a name you did not choose by clicking on the name. A new page will be displayed. First you must change the status to ’Offline’ and then select ‘OK’ so that the SQL Server does indeed take the database offline for safety.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• Now re-click on the same database name and this time when the same page is shown click the ‘Remove content database’ toggle button near the bottom the page. Then click ‘OK’. This remove the data base only as far as SharePoint is concerned. You will still need to delete the database in SQL server instance.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;• When there is only 1 database listed and it has the name you expect then you are done here and can return to step 9.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7442443352896192481-1691813910875851370?l=rcrewson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rcrewson.blogspot.com/feeds/1691813910875851370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rcrewson.blogspot.com/2010/05/sharepoint-site-collection-recovery.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7442443352896192481/posts/default/1691813910875851370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7442443352896192481/posts/default/1691813910875851370'/><link rel='alternate' type='text/html' href='http://rcrewson.blogspot.com/2010/05/sharepoint-site-collection-recovery.html' title='SharePoint Site Collection Recovery'/><author><name>Rob C</name><uri>http://www.blogger.com/profile/07793353431334205298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_qg8NYeCPPZE/SoWedYegwkI/AAAAAAAAAAU/b8tJoyPfMo8/S220/rwc.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qg8NYeCPPZE/S_sdqaqBQXI/AAAAAAAAABo/0eJtVxpZv6U/s72-c/CropperCapture%5B5%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7442443352896192481.post-2692336847056729329</id><published>2010-03-28T10:28:00.000-07:00</published><updated>2010-03-28T10:28:07.100-07:00</updated><title type='text'></title><content type='html'>This is a copy of a short paper I wrote&amp;nbsp;a couple of years ago.&amp;nbsp;With the pending release of SharePoint 2010 the database sizes and other limits may get larger, however&amp;nbsp;the underlying times and space consumption of&amp;nbsp; 'restores' remains.&amp;nbsp;To date there are no&amp;nbsp;TechNet&amp;nbsp;published timings for SharePoint 2010, as in the third reference for office 2007.&amp;nbsp;If and when they show up, I will add the link to this post.&lt;br /&gt;&lt;br /&gt;I hope this helps someones. RobC&lt;br /&gt;&lt;br /&gt;&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;strong&gt;&lt;span style="font-size: large;"&gt;SharePoint 'Job/Project'&amp;nbsp; Topoloy Considerations&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Foreward&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Design of SharePoint topologies (hierarchy of site types) for any business with a ‘job’ or ‘project’ basis is a complicated process, as it is for any business. However, with some knowledge of the pertinent facts, the path to major decisions becomes a little more obvious. This document will try to present a concise collection of the facts and concepts that drive topologies in an AEC related world. &lt;br /&gt;&lt;br /&gt;Many books on managing Moss/SharePoint installations mention choosing a ‘Publication Template’ for the initial site in the farm.&lt;br /&gt;&lt;br /&gt;On the upside, a major benefit of having a publishing site collection at the root is, that it and all site collections of any template (except Blank templates) created below it will inherit the ‘advanced search’ capability, &lt;br /&gt;&lt;br /&gt;On the downside, the ‘collaboration’ aspects of a ‘publishing’ site are non-existent and this is not good in a ‘job/project oriented scenario. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;One important generality:&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;1. If one is just starting in SharePoint then start with ‘Foundation Server’ not WSS2.0 or WSS3.0. Updates ‘in place’ are usually ugly if you have modified something.&lt;br /&gt;&lt;br /&gt;2. If you already have WSS3 convert NOW before you add complexity and content that possibly might make the conversion more troublesome.&lt;br /&gt;&lt;br /&gt;So what to do? &lt;br /&gt;&lt;br /&gt;Please read on and then evaluate.&lt;br /&gt;Note: These conjectures are mine alone. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Decision 1 – Farm Implementation Type&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;• The ‘stand alone’ option should only be used in a SMB environment at best. There is No expansion possibility.&lt;br /&gt;&lt;br /&gt;• A small farm can be implemented on one server like the standalone version or two or more. &lt;br /&gt;&lt;br /&gt;• The single server small farm CAN be expanded to other servers by moving the web front and/or SQL server pieces. &lt;br /&gt;&lt;br /&gt;• If the implementation is to be configured with separate SQL and WFE (Web Front End) server or the WFE servers are to be distributed on the WAN then the medium or large farm installation is a mandatory choice.&lt;br /&gt;&lt;br /&gt;• One does not experience the management options that the ‘farm’ options provide in the ‘stand alone’ implementation.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;• Summary: Always choose at least the ‘small farm option’&lt;/em&gt;. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Decision 2 – Primary Site Collection Template&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;• Publishing sites are normally used for content that is read only for the masses, especially for public facing sites, IE a portal with anonymous access and or an external site used across the WAN for your whole company.&lt;br /&gt;&lt;br /&gt;• These publishing sites are commonly moderated, meaning: things must be approved via workflows or manually, by approvers before going public. This is not normally efficient or expedient on a job/project operational site.&lt;br /&gt;&lt;br /&gt;• ‘Publishing’ Sites are typically used internally for division and/or departments to present company data to employees and management to support operations and ISO900?.&lt;br /&gt;&lt;br /&gt;• Normally department/division management control the content of their respective sites via standard SharePoint built in tools via the browser.&lt;br /&gt;&lt;br /&gt;• ‘Publishing’ site collections can only create child (sub) sites with a ‘publishing’ template, UNLESS one is creating a new site collection (as is done for the ‘MySites’ feature in MOSS implementations).&lt;br /&gt;&lt;br /&gt;• ‘Team’ site collections and ‘team’ or ‘custom’ sub sites are the basis for real collaboration needed in a job/project operation.&lt;br /&gt;&lt;br /&gt;• Site Collections allow putting all their shared content and that of their sub sites into a new database. This is important for back up &amp;amp; moving the site within the farm when scaling up or when servers fail. &lt;br /&gt;&lt;br /&gt;• Site collections also provide inheritable attributes such as user permissions, presentation style and navigation to their sub sites.&lt;br /&gt;&lt;br /&gt;• It is recommend by others in the field (Ref #2) that the size of any single content database in Not exceed 15-20 GB (SQL Server 2k5) and (from MS) no single SQL server instance exceed 32k databases and no single SQL server exceed 50 instances(ref #1). So per SQL Server databases is not a problem. Therefore a database per job is also not an issue (except for the naming ). Recovery May Be.&lt;br /&gt;&lt;br /&gt;• With current (2007) disk drive technology a 15GB database takes about an hour to restore! And a little longer to save!!.&lt;br /&gt;&lt;br /&gt;• However, if your database is living on a large SAN in a RAID 5/10 then recovery is not much of an issue. However, restoring archives may still be an issue of time.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Summary: Create a Publishing site collection at the root, especially when using MOSS&lt;/em&gt;. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Then use ‘Managed Path(s)’ to access team site collections where the managed path represents just plain ‘projects’ or some other logical hierarchy like state, Department, continent, managing office, etc&lt;/em&gt; . &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Decision 3 - Projects per site Collection&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Next question is: ‘How many projects per site collection? One, many, or a few. &lt;br /&gt;&lt;br /&gt;Well, this question has no simple answer either. A review of the current document storage arrangement (like a disk based file or shared file system) will provide some insight into some practical constraints. &lt;br /&gt;&lt;br /&gt;However, even these figures have to be viewed in the light of just what document types are currently being stored versus what additional document types are planned to be stored in SharePoint. &lt;br /&gt;&lt;br /&gt;• An existing project might be considered small if the total storage required now is less than 2 Gigabytes (GB). Up to 8 of these projects could be under a site collection. But there should be some common ground like Division/Department, physical, or administration office. These factors would come into play under a possible site move from one server to another and apply to all site collections. Splitting the content data base on a site basis can be done via STP’s but this may not provide the exact division desired.&lt;br /&gt;&lt;br /&gt;• Up to 10 GB could be considered a medium size project. This suggests about 2 sites of this size per Site Collection.&lt;br /&gt;&lt;br /&gt;• Any single project with over 15 GB of current storage has to be considered a large project. Not from a SharePoint storage point of view, but from recovery one. Only one of these should be in a site collection as its size will lead to other complexities in sub topologies. To put that in some perspective, if an average CAD drawing size was 5 MB(Mega Bytes) then 15 GB could hold 3 Million of them (15* 10^12/5*10^6 = 3*10^6).&lt;br /&gt;&lt;br /&gt;• Whether to use Folders or not in a given Library is a great question. In SharePoint 2003 they were not suggested as they were not handled well. In SharePoint 2007 it is a much different story. Especially where the Library content is 2000+ documents. See reference #3 and review the charts.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Decision 4 - Meta Data&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;One of the most important decisions pertains to just what is the minimum meta-data one needs to have per library to be efficient in searching and sorting the library content. There will be no shortage of content.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;• If mixed document types (from the DOC, PDF, XLS, MSG etc. point of view) are to be contained in the same library then some careful thought about the meta-data is must. &lt;br /&gt;&lt;br /&gt;• Are mixed content libraries a good thing. Even if isolated on a folder basis will this cause mass confusion.&lt;br /&gt;&lt;br /&gt;• Would ‘naming conventions’ ease confusion and frustrations levels.&amp;nbsp;&amp;nbsp; -- &lt;em&gt;&amp;nbsp; Almost always, I think.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;• The good news here is that usage of the ‘content types’ found in the 2007 version of SharePoint can help group or differentiate mixed content. For example all MSG and DOC type content could be combined under a defined content type of ‘communications’. &lt;br /&gt;&lt;br /&gt;• A review of the present system (file share for example) as to how it’s set up, assisted (or did not assist) searches, and sizes,&amp;nbsp;can lead to conclusions about what is required in the SharePoint environment. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7442443352896192481-2692336847056729329?l=rcrewson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rcrewson.blogspot.com/feeds/2692336847056729329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rcrewson.blogspot.com/2010/03/this-is-copy-of-short-paper-i-wrote.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7442443352896192481/posts/default/2692336847056729329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7442443352896192481/posts/default/2692336847056729329'/><link rel='alternate' type='text/html' href='http://rcrewson.blogspot.com/2010/03/this-is-copy-of-short-paper-i-wrote.html' title=''/><author><name>Rob C</name><uri>http://www.blogger.com/profile/07793353431334205298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_qg8NYeCPPZE/SoWedYegwkI/AAAAAAAAAAU/b8tJoyPfMo8/S220/rwc.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7442443352896192481.post-1664689048353651013</id><published>2010-03-03T10:41:00.000-08:00</published><updated>2010-03-09T09:44:47.646-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='missing window1.xaml'/><category scheme='http://www.blogger.com/atom/ns#' term='Debugging'/><title type='text'>The Case of the Missing 'Window1.xaml' file</title><content type='html'>I had an issue when trying to debug an application (WPF) that complained about not finding the 'Window1.xaml' file. After Googling this, I saew lots of remedies some of which I tried to no avail. Most of these items referred to VS2k5 or VS2k8 betaX. I was using VS2k8 SP1 and had no problem with it Untill... after I had loaded VS2k10 beta2. &lt;br /&gt;However the immediate solution was found after poking around a bit.&lt;br /&gt;&lt;br /&gt;The simple solution is to examine the 'obj/app.g.cs' file, specifically the 'InitializeComponent()' routine.&lt;br /&gt;The line staring with 'this.StarupUri = new System.Uri&amp;nbsp;('&amp;nbsp; will likely only contain the name of your initial window 'eg '("Window1.xaml, System.Uri.Kind.Relative"). There is piece missing that should preceed the "Window1" word.&lt;br /&gt;You can&amp;nbsp;find/copy the exact values by editing your main window&amp;nbsp;'obj/Window1.g.cs' file and find the 'InitiailzeCompnent()' routine and you will see the required quoted value as the prameters to the 'System.Uri resourcelocator = new Syste.Uri(....)' call.&lt;br /&gt;&lt;br /&gt;Once this value is pasted in to the approriate spot in the app.g.cs file you will be good to go. &lt;br /&gt;One caveat, this fix will be undone by&amp;nbsp;a 'clean, build/rebuld' operation beacuse the real root problem is not corrected (in my case something in the .csproj file).&lt;br /&gt;&lt;br /&gt;Hope this helps someone recover quickly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7442443352896192481-1664689048353651013?l=rcrewson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rcrewson.blogspot.com/feeds/1664689048353651013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rcrewson.blogspot.com/2010/03/case-of-missing-window-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7442443352896192481/posts/default/1664689048353651013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7442443352896192481/posts/default/1664689048353651013'/><link rel='alternate' type='text/html' href='http://rcrewson.blogspot.com/2010/03/case-of-missing-window-file.html' title='The Case of the Missing &apos;Window1.xaml&apos; file'/><author><name>Rob C</name><uri>http://www.blogger.com/profile/07793353431334205298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_qg8NYeCPPZE/SoWedYegwkI/AAAAAAAAAAU/b8tJoyPfMo8/S220/rwc.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7442443352896192481.post-8045932813870627450</id><published>2009-08-14T10:45:00.000-07:00</published><updated>2009-08-14T19:38:26.725-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint site cloning'/><category scheme='http://www.blogger.com/atom/ns#' term='merge'/><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><title type='text'>Sharepoint Site backup/archiving/cloning/moving</title><content type='html'>While there are many ways in SharePoint to &lt;em&gt;save/archive/backup/&lt;/em&gt; an existing site and its subsites such as save as a template, part of a backup, or the new &lt;em&gt;move/merge&lt;/em&gt; site option on Sharepoint Administration, one of the most flexable and sure method for the &lt;em&gt;save/archive/backup&lt;/em&gt; is the '&lt;strong&gt;export&lt;/strong&gt;' option to &lt;strong&gt;'stsadm.exe'&lt;/strong&gt; found in the 12 hive's bin directory. Its couterpart the &lt;strong&gt;'import'&lt;/strong&gt; option fullfills the &lt;em&gt;clone/move&lt;/em&gt; function.&lt;br /&gt;&lt;br /&gt;The export option can export whole site collections. When doing sitecollections or sites with large files then increase the compressed file size with the'-cabsize NNNN' option.&lt;br /&gt;On export operations set the '-Versions N' where 4 is most useful value for full backup and archive.&lt;br /&gt;For clone operations '1' or '2' is probably the most efficient value depending on your library version settings. See the Reference section below.&lt;br /&gt;&lt;br /&gt;The real beauty of this export is that not only includes contents but also the SD (designer) workflows. The worklows may have broken links on an import to a new site name but are easly fixed. At least they are there, unlike 'site templates'.&lt;br /&gt;&lt;br /&gt;Since an exported site's contents can be imported on top of an existing site's contents, one gets the 'merge' operation. For this it is important that the -UpdateVersions option be set to '1' which adds them ias a new version where a list item or document exists, otherwise it is an error.&lt;br /&gt;&lt;br /&gt;There are some cleanup things that should&lt;br /&gt;Before doing an export for clone/archiving/move purposes one should take the time to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;delete all unnecessary copies of forms, datasources, et al created with SP Designer&lt;/li&gt;&lt;li&gt;if exporting a site collection retract and/or delete any unneeded solutions&lt;/li&gt;&lt;li&gt;empty all the recycle bins for all sites involved, both levels on site collection if enabled&lt;/li&gt;&lt;li&gt;for a clone/merge operations all unnecessary versions of list and documents should be deleted&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;On the export command it would be prudent to always include security in case its is reloaded from backup/archive. One can still chose to incude or igore the security on the import.&lt;/p&gt;&lt;p&gt;If one is doing a clone operation, E.G. creating a new department or office site then the security should NOT be included on the import command unless all sites should have equal access.&lt;/p&gt;&lt;p&gt;This abitlity to add content to an emtpy but pre-existing site is important when it is desired that the visibitly of the 'Top Link Bar' tabs and 'Quick Launch content be controlled by the user's role permissions. Manually created links are visible to all. Therefore, to get the default response one should create a blank site with the desired name using the browser tools and then do an import to this same site. Dependimng on your circumstances site Titles may have to edited unless you updated a pre-existing site.&lt;/p&gt;&lt;p&gt;References:&lt;/p&gt;&lt;p&gt;&gt;stsadm -help export&lt;br /&gt;stsadm.exe -o export -url &lt;url&gt;&lt;/p&gt;&lt;p&gt;-filename &lt;export&gt;[-overwrite] [-nologfile] [-quiet]&lt;/p&gt;&lt;p&gt;[-includeusersecurity] [-haltonwarning] [-haltonfatalerror]&lt;/p&gt;&lt;p&gt;[-cabsize &lt;int&gt;&lt;p&gt;[-versions &lt;1-4&gt; &lt;/p&gt;&lt;p&gt;1 - Last major version for files and list items (default)&lt;/p&gt;&lt;p&gt;2 - The current version, either the last major or the last minor&lt;/p&gt;&lt;p&gt;3 - Last major and last minor version for files and list items&lt;/p&gt;&lt;p&gt;4 - All versions for files and list items]&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&gt;stsadm -help import&lt;br /&gt;stsadm.exe -o import -url &lt;url&gt;&lt;/p&gt;&lt;p&gt;-filename [-nologfile] [-quiet] [-haltonwarning] &lt;/p&gt;&lt;p&gt;[-includeusersecurity] [-nofilecompression] [-haltonfatalerror] &lt;/p&gt;&lt;p&gt;[-updateversions &lt;1-3&gt; &lt;/p&gt;&lt;p&gt;1 - Add new versions to the current file (default)&lt;/p&gt;&lt;p&gt;2 - Overwrite the file and all its versions (delete then insert)&lt;/p&gt;&lt;p&gt;3 - Ignore the file if it exists on the destination] &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;stsadm -o export -url &lt;a href="http://server/sites/abc"&gt;http://server/sites/abc&lt;/a&gt; -filename .\savefile -includeusersecurity&lt;/p&gt;&lt;p&gt;-nologfile -versions 2&lt;/p&gt;&lt;p&gt;stsadm -o import -url &lt;a href="http://server/sites/ghi"&gt;http://server/sites/ghi&lt;/a&gt; -filename .\savefile -nologfile -versions 1&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Happy site management.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7442443352896192481-8045932813870627450?l=rcrewson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rcrewson.blogspot.com/feeds/8045932813870627450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rcrewson.blogspot.com/2009/08/sharepoint-site-backuparchivingcloningm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7442443352896192481/posts/default/8045932813870627450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7442443352896192481/posts/default/8045932813870627450'/><link rel='alternate' type='text/html' href='http://rcrewson.blogspot.com/2009/08/sharepoint-site-backuparchivingcloningm.html' title='Sharepoint Site backup/archiving/cloning/moving'/><author><name>Rob C</name><uri>http://www.blogger.com/profile/07793353431334205298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_qg8NYeCPPZE/SoWedYegwkI/AAAAAAAAAAU/b8tJoyPfMo8/S220/rwc.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7442443352896192481.post-4244954932104151406</id><published>2009-08-04T21:36:00.000-07:00</published><updated>2010-03-03T09:26:11.434-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Event Properties'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Missing Fields in SharePoint Event Property Lists</title><content type='html'>Ever wonder why some fields that one would expect to be included, do not show up in &lt;em&gt;before&lt;/em&gt; and/or &lt;em&gt;after&lt;/em&gt; properties in the Sharepoint event properties. It should have been obvious, but it took the little brain within a night or two to sus out the idea that it was the ones with&lt;em&gt;&lt;strong&gt; &lt;/strong&gt;'null'&lt;/em&gt; values that were &lt;strong&gt;not&lt;/strong&gt; in the before list, and therefore definitely not in the 'after list.&lt;br /&gt;So if you need the field to be included for an update during a synchronous ('ing') event make sure it has a 'default' value.&lt;br /&gt;Note that if one one turns on 'Manage Content Types', the metadata fields that are in the event properties are limited to those defined in the content type (I am referring to the fields added by the project users not the fields defined by Microsoft such as created/modified by, file leaf ref, etc.  ).  When  mutiple content types are defined for a library and one has logic in an event receiver that always expects to test the value of that field then it must be defined in all content types or a 'not in range' exception will occur (don't you just love these helpfull exception messages!).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7442443352896192481-4244954932104151406?l=rcrewson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rcrewson.blogspot.com/feeds/4244954932104151406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rcrewson.blogspot.com/2009/08/missing-fields-in-sharepoint-event.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7442443352896192481/posts/default/4244954932104151406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7442443352896192481/posts/default/4244954932104151406'/><link rel='alternate' type='text/html' href='http://rcrewson.blogspot.com/2009/08/missing-fields-in-sharepoint-event.html' title='Missing Fields in SharePoint Event Property Lists'/><author><name>Rob C</name><uri>http://www.blogger.com/profile/07793353431334205298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_qg8NYeCPPZE/SoWedYegwkI/AAAAAAAAAAU/b8tJoyPfMo8/S220/rwc.JPG'/></author><thr:total>0</thr:total></entry></feed>
