<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.microsoft.co.il/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>Shai Raiten&amp;#39;s Blog : DEV, IIS</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/IIS/default.aspx</link><description>Tags: DEV, IIS</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>SharePoint API – Download \ Upload Documents (Tool)</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2011/10/27/sharepoint-api-download-upload-documents-tool.aspx</link><pubDate>Thu, 27 Oct 2011 13:03:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:921005</guid><dc:creator>shair</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=921005</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2011/10/27/sharepoint-api-download-upload-documents-tool.aspx#comments</comments><description>&lt;div class="share-buttons"&gt;
&lt;div style="TEXT-ALIGN:left;LINE-HEIGHT:1em;PADDING-RIGHT:15px;FONT-FAMILY:Arial, Helvetica, sans-serif;FLOAT:left;FONT-SIZE:14px;"&gt;&lt;a class="twitter-share-button" href="http://twitter.com/share?url=http://blogs.microsoft.co.il/blogs/shair/archive/2011/10/27/sharepoint-api-download-upload-documents-tool.aspx"&gt;Tweet&lt;/a&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN:left;LINE-HEIGHT:1em;PADDING-RIGHT:25px;FONT-FAMILY:Arial, Helvetica, sans-serif;FLOAT:left;FONT-SIZE:14px;"&gt;
&lt;script type="IN/Share"&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;div style="TEXT-ALIGN:left;LINE-HEIGHT:1em;FONT-FAMILY:Arial, Helvetica, sans-serif;FLOAT:left;FONT-SIZE:14px;"&gt;&lt;iframe style="WIDTH:100px;HEIGHT:21px;" src="http://www.facebook.com/plugins/like.php?href=http://blogs.microsoft.co.il/blogs/shair/archive/2011/10/27/sharepoint-api-download-upload-documents-tool.aspx&amp;amp;send=false&amp;amp;layout=button_count&amp;amp;width=450&amp;amp;show_faces=false&amp;amp;action=like&amp;amp;colorscheme=light&amp;amp;font=segoe+ui&amp;amp;height=21&amp;amp;appId=184186808308137" scrolling="no" frameborder="0" style="border:none;overflow:hidden;width:450px;height:21px;"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN:left;LINE-HEIGHT:1em;FONT-FAMILY:Arial, Helvetica, sans-serif;FLOAT:left;FONT-SIZE:14px;"&gt;
&lt;div class="g-plusone"&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;A long time ago I wrote about &lt;a href="http://blogs.microsoft.co.il/blogs/shair/archive/2011/02/25/sharepoint-2007-files-restore-tool.aspx" target="_blank"&gt;SharePoint 2007 Files Restore Tool&lt;/a&gt;, tool that allows you to connect to SharePoint content database (not need to have SharePoint installation) and extract documents.&lt;/p&gt;  &lt;p&gt;The reason I wrote this tool was a customer that upgrade TFS and perform a new installation of SharePoint so he lost all his documents, this tool helped me to extract all documents and added them to the new SharePoint site.&lt;/p&gt;  &lt;p&gt;SharePoint upgrade/migration can be unpleasant and sometimes I prefer to do a clean installation when upgrading or moving TFS and then just import the documents (without history).    &lt;br /&gt;Some customers wants to keep the history, so you can do small changes to download all file versions and then upload each version.&lt;/p&gt;  &lt;p&gt;The big questions is how to extract all SharePoint documents from existing Site?&lt;/p&gt;  &lt;p&gt;So, I’ve built another tool to help me do that, the below tool will connect to SharePoint using API and download all documents includes Folder structure to my computer.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_0F4C5A82.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_141EE871.png" width="743" height="475" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Because I’m using SharePoint API you can write any Url of the SharePoint site, I’ll show the all documents folders includes files under each folder, and then you can click the download button to download all files or specific files to your machine.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_7D1FCB5A.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_03A3251E.png" width="734" height="345" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;How To Connect SharePoint Site:&lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;* SharePoint API will only work on Machine with SharePoint installed *&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:12pt;"&gt;public&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:12pt;"&gt;&amp;#160;&lt;span&gt;&lt;font color="#2b91af"&gt;SPWeb&lt;/font&gt;&lt;/span&gt; _sp;&lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Connect()&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;try&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt;&lt;/span&gt; (&lt;span&gt;&lt;font color="#2b91af"&gt;SPSite&lt;/font&gt;&lt;/span&gt; site = &lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#2b91af"&gt;SPSite&lt;/font&gt;&lt;/span&gt;(txtSPUrl.&lt;span&gt;&lt;font color="#000000"&gt;Text&lt;/font&gt;&lt;/span&gt;))&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TreeFolders.&lt;span&gt;&lt;font color="#000000"&gt;Items&lt;/font&gt;&lt;/span&gt;.Clear();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; webTree = &lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#2b91af"&gt;TreeViewItem&lt;/font&gt;&lt;/span&gt;();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; webTree.Header = _sp.Title;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; webTree.Tag = _sp;&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MapFolders(_sp.Folders, webTree);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;catch&lt;/font&gt;&lt;/span&gt; (&lt;span&gt;&lt;font color="#2b91af"&gt;Exception&lt;/font&gt;&lt;/span&gt; ex)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;throw&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#2b91af"&gt;ArgumentException&lt;/font&gt;&lt;/span&gt;(&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;Connect&amp;quot;&lt;/font&gt;&lt;/span&gt;, ex);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;}&lt;/font&gt;&lt;/pre&gt;

&lt;h3&gt;Building Folder Structure&lt;/h3&gt;

&lt;p&gt;I’ve created a recursive method to get the total number of files under a specific folder include all sub folders.&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:12pt;"&gt;private&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:12pt;"&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; GetFilesCount(&lt;span&gt;&lt;font color="#2b91af"&gt;SPFolder&lt;/font&gt;&lt;/span&gt; folder, &lt;span&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; count)&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; count += folder.Files.Count;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;/span&gt; folder.SubFolders.Aggregate(count, (current, subfolder) =&amp;gt; &lt;br /&gt;           GetFilesCount(subfolder, current));&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; MapFolders(&lt;span&gt;&lt;font color="#2b91af"&gt;SPFolderCollection&lt;/font&gt;&lt;/span&gt; folderList,&lt;br /&gt;                                             &lt;span&gt;&lt;font color="#2b91af"&gt;TreeViewItem&lt;/font&gt;&lt;/span&gt; treeNode)&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;for&lt;/font&gt;&lt;/span&gt; (&lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; i = 0; i &amp;lt; folderList.Count; i++)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; item = &lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#2b91af"&gt;TreeViewItem&lt;/font&gt;&lt;/span&gt;();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; item.Header = &lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;.Format(&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#3cb371"&gt;{0}&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#a31515"&gt; (&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#3cb371"&gt;{1}&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#a31515"&gt;)&amp;quot;&lt;/font&gt;&lt;/span&gt;, folderList[i].Name,&lt;br /&gt;                                     GetFilesCount(folderList[i], 0));&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; item.Tag = folderList[i];&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; treeNode.Items.Add(item);&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (folderList[i].SubFolders.Count &amp;gt; 0)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MapFolders(folderList[i].SubFolders, item);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;}&lt;/font&gt;&lt;/pre&gt;

&lt;h3&gt;Download Files From SharePoint Folder&lt;/h3&gt;

&lt;p&gt;The &lt;u&gt;CreateDirectoryStructure&lt;/u&gt; will build the local folder structure based on the file path in SharePoint, this is important because once we want to upload those files to a new SharePoint site we need those folder names in order to create them in the new SharePoint site.&lt;/p&gt;

&lt;p&gt;Each SPFolder object contains a &lt;span&gt;&lt;font color="#2b91af"&gt;SPFileCollection&lt;/font&gt;&lt;/span&gt; with all files under that folder – Not include SubFolder files.&lt;/p&gt;

&lt;p&gt;DownloadFile – will run over all files, get each file binary data and save the stream to a local file.&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:12pt;"&gt;private&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:12pt;"&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; DownloadFile(&lt;span&gt;&lt;font color="#2b91af"&gt;SPFileCollection&lt;/font&gt;&lt;/span&gt; files)&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;foreach&lt;/font&gt;&lt;/span&gt; (&lt;span&gt;&lt;font color="#2b91af"&gt;SPFile&lt;/font&gt;&lt;/span&gt; file &lt;span&gt;&lt;font color="#0000ff"&gt;in&lt;/font&gt;&lt;/span&gt; files)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (CreateDirectoryStructure(txtLocalPath.Text, file.&lt;span&gt;&lt;font color="#ff0000"&gt;Url&lt;/font&gt;&lt;/span&gt;))&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; filepath = System.IO.&lt;span&gt;&lt;font color="#2b91af"&gt;Path&lt;/font&gt;&lt;/span&gt;.Combine(txtLocalPath.Text,&lt;br /&gt;                                                 file.&lt;span&gt;&lt;font color="#ff0000"&gt;Url&lt;/font&gt;&lt;/span&gt;);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;byte&lt;/font&gt;&lt;/span&gt;[] binFile = file.&lt;span&gt;&lt;font color="#ff0000"&gt;OpenBinary&lt;/font&gt;&lt;/span&gt;();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.IO.&lt;span&gt;&lt;font color="#2b91af"&gt;FileStream&lt;/font&gt;&lt;/span&gt; fstream = System.IO.&lt;span&gt;&lt;font color="#2b91af"&gt;File&lt;/font&gt;&lt;/span&gt;.Create(filepath);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; fstream.Write(binFile, 0, binFile.Length);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; fstream.Close();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;else&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;throw&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#2b91af"&gt;ArgumentException&lt;/font&gt;&lt;/span&gt;(&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;Cannot Create Folders Structure&amp;quot;&lt;/font&gt;&lt;/span&gt;);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; CreateDirectoryStructure(&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; baseFolder, &lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; filepath)&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (!&lt;span&gt;&lt;font color="#2b91af"&gt;Directory&lt;/font&gt;&lt;/span&gt;.Exists(baseFolder)) &lt;span&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;false&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; paths = filepath.Split(&lt;span&gt;&lt;font color="#a31515"&gt;&amp;#39;/&amp;#39;&lt;/font&gt;&lt;/span&gt;);&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;for&lt;/font&gt;&lt;/span&gt; (&lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; i = 0; i &amp;lt; paths.Length - 1; i++)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; baseFolder = System.IO.&lt;span&gt;&lt;font color="#2b91af"&gt;Path&lt;/font&gt;&lt;/span&gt;.Combine(baseFolder, paths[i]);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#2b91af"&gt;Directory&lt;/font&gt;&lt;/span&gt;.CreateDirectory(baseFolder);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;true&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;}&lt;/font&gt;&lt;/pre&gt;

&lt;h3&gt;Upload File To SharePoint Site&lt;/h3&gt;

&lt;p&gt;Once you got all files from the Old SharePoint site you can enter the new SharePoint site url and click the Upload button.&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:12pt;"&gt;private&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:12pt;"&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; btnUpload_Click(&lt;span&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/span&gt; sender, &lt;span&gt;&lt;font color="#2b91af"&gt;RoutedEventArgs&lt;/font&gt;&lt;/span&gt; e)&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt;&lt;/span&gt; (&lt;span&gt;&lt;font color="#2b91af"&gt;SPSite&lt;/font&gt;&lt;/span&gt; site = &lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#2b91af"&gt;SPSite&lt;/font&gt;&lt;/span&gt;(txtTargetSP.Text))&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#2b91af"&gt;SPWeb&lt;/font&gt;&lt;/span&gt; targetSP = site.OpenWeb();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;foreach&lt;/font&gt;&lt;/span&gt; (&lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; file &lt;span&gt;&lt;font color="#0000ff"&gt;in&lt;/font&gt;&lt;/span&gt; listLocalFolders.Items.Cast&amp;lt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&amp;gt;().Select&lt;br /&gt;                (folder =&amp;gt; &lt;span&gt;&lt;font color="#2b91af"&gt;Directory&lt;/font&gt;&lt;/span&gt;.GetFiles(folder, &lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;*.*&amp;quot;&lt;/font&gt;&lt;/span&gt;, &lt;br /&gt;                 &lt;span&gt;&lt;font color="#2b91af"&gt;SearchOption&lt;/font&gt;&lt;/span&gt;.AllDirectories)).SelectMany(files =&amp;gt; files))&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UploadFile(file, file.Replace(txtLocalPath.Text, &lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;.Empty)&lt;br /&gt;                       , targetSP);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;}&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;Removing the local path from the full file path will result with the destination file to the new SharePoint site.&lt;/p&gt;

&lt;p&gt;The propose of &lt;u&gt;EnsureParentFolder&lt;/u&gt; is to ensure the destination folder in the new SharePoint site exists, and if not create the folder in the new site.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;UploadFile&lt;/u&gt; will stream out the file content and using &lt;span&gt;&lt;font color="#2b91af"&gt;SPWeb.&lt;font color="#000000"&gt;Files.Add method include the destination path will add a new file to the SharePoint site.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:12pt;"&gt;public&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:12pt;"&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; EnsureParentFolder(&lt;span&gt;&lt;font color="#2b91af"&gt;SPWeb&lt;/font&gt;&lt;/span&gt; parentSite, &lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; destinUrl)&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; destinUrl = parentSite.GetFile(destinUrl).&lt;span&gt;&lt;font color="#ff0000"&gt;Url&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; index = destinUrl.LastIndexOf(&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;/&amp;quot;&lt;/font&gt;&lt;/span&gt;);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; parentFolderUrl = &lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;.Empty;&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (index &amp;gt; -1)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; parentFolderUrl = destinUrl.Substring(0, index);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#2b91af"&gt;SPFolder&lt;/font&gt;&lt;/span&gt; parentFolder&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = parentSite.GetFolder(parentFolderUrl);&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (!parentFolder.Exists)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#2b91af"&gt;SPFolder&lt;/font&gt;&lt;/span&gt; currentFolder = parentFolderUrl.Split(&lt;span&gt;&lt;font color="#a31515"&gt;&amp;#39;/&amp;#39;&lt;/font&gt;&lt;/span&gt;).&lt;br /&gt;            Aggregate&amp;lt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;, &lt;span&gt;&lt;font color="#2b91af"&gt;SPFolder&lt;/font&gt;&lt;/span&gt;&amp;gt;(parentSite.RootFolder, &lt;br /&gt;           (current, folder) =&amp;gt; current.SubFolders.&lt;span&gt;&lt;font color="#000000"&gt;Add&lt;/font&gt;&lt;/span&gt;(folder));&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;/span&gt; parentFolderUrl;&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; UploadFile(&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; srcUrl, &lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; destUrl, &lt;span&gt;&lt;font color="#2b91af"&gt;SPWeb&lt;/font&gt;&lt;/span&gt; site)&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (!&lt;span&gt;&lt;font color="#2b91af"&gt;File&lt;/font&gt;&lt;/span&gt;.Exists(srcUrl))&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;throw&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#2b91af"&gt;ArgumentException&lt;/font&gt;&lt;/span&gt;(&lt;span&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt;.Format(&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#3cb371"&gt;{0}&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#a31515"&gt; does not exist&amp;quot;&lt;/font&gt;&lt;/span&gt;,&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; srcUrl), &lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;srcUrl&amp;quot;&lt;/font&gt;&lt;/span&gt;);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; fStream = &lt;span&gt;&lt;font color="#2b91af"&gt;File&lt;/font&gt;&lt;/span&gt;.OpenRead(srcUrl);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; contents = &lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;byte&lt;/font&gt;&lt;/span&gt;[fStream.Length];&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; fStream.Read(contents, 0, (&lt;span&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt;)fStream.Length);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; fStream.Close();&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (destUrl.StartsWith(&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;\\&amp;quot;&lt;/font&gt;&lt;/span&gt;))&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; destUrl = destUrl.Substring(1);&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; destUrl = destUrl.Replace(&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;\\&amp;quot;&lt;/font&gt;&lt;/span&gt;, &lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;/&amp;quot;&lt;/font&gt;&lt;/span&gt;);&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; EnsureParentFolder(site, destUrl);&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;try&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; site.Files.&lt;span&gt;&lt;font color="#000000"&gt;Add&lt;/font&gt;&lt;/span&gt;(destUrl, contents, &lt;span&gt;&lt;font color="#0000ff"&gt;true&lt;/font&gt;&lt;/span&gt;);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;catch&lt;/font&gt;&lt;/span&gt; (&lt;span&gt;&lt;font color="#2b91af"&gt;Exception&lt;/font&gt;&lt;/span&gt; ex)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;}&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;Enjoy&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=921005" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TFS/default.aspx">TFS</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TFS+Utilities/default.aspx">TFS Utilities</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/SQL/default.aspx">SQL</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/ITPRO/default.aspx">ITPRO</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Share+Point/default.aspx">Share Point</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/SQL+2008/default.aspx">SQL 2008</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TFS+2010/default.aspx">TFS 2010</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET+4/default.aspx">.NET 4</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Tools/default.aspx">Tools</category></item><item><title>Creating Virtual Web Sites on IIS with .Net</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2008/11/23/creating-virtual-web-sites-on-iis-with-net.aspx</link><pubDate>Sun, 23 Nov 2008 20:04:11 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:174082</guid><dc:creator>Shai Raiten</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=174082</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2008/11/23/creating-virtual-web-sites-on-iis-with-net.aspx#comments</comments><description>&lt;blockquote style="font-family:consolas;background:white;color:black;font-size:12pt;"&gt; &lt;h1&gt;&lt;font face="Arial"&gt;Creating Virtual Web Sites on IIS with .Net&lt;/font&gt;&lt;/h1&gt; &lt;p&gt;&lt;font face="Arial"&gt;My last post on &lt;span style="text-transform:none;text-indent:0px;border-collapse:separate;font:bold 15px tahoma;white-space:normal;letter-spacing:normal;word-spacing:0px;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;-webkit-text-decorations-in-effect:none;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0;" class="Apple-style-span"&gt;&lt;a target="_blank" href="http://blogs.microsoft.co.il/blogs/shair/archive/2008/11/03/reading-web-sites-status-on-iis-with-net.aspx"&gt;Reading Web Sites Status on IIS with .Net&lt;/a&gt;&amp;nbsp;&lt;/span&gt;was the first post on IIS development through .NET&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Arial"&gt;So here is an example for creating virtual Web Site using .NET.&lt;/font&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;DirectoryEntry&lt;/span&gt; VDir = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; Virtual = &lt;span style="color:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; FriendlyName = &lt;span style="color:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; Path = &lt;span style="color:#a31515;"&gt;&amp;quot;&amp;quot;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; IISPath = &lt;span style="color:#a31515;"&gt;&amp;quot;IIS://LOCALHOST/W3SVC/1/ROOT&amp;quot;&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; AuthNTLM = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; AuthAnonymous = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; AuthBasic = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; DefaultDocuments = &lt;span style="color:#a31515;"&gt;default.htm,default.aspx,default.asp&amp;quot;&lt;/span&gt;;&lt;/p&gt;&lt;/blockquote&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; CreateVirtual()&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;DirectoryEntry&lt;/span&gt; root = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;DirectoryEntry&lt;/span&gt;(&lt;span style="color:blue;"&gt;this&lt;/span&gt;.IISPath);&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (root == &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;//Couldn&amp;#39;t access root node&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;false&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;try&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.VDir = root.Children.Add(Virtual, &lt;span style="color:#a31515;"&gt;&amp;quot;IISWebVirtualDir&amp;quot;&lt;/span&gt;);&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;catch&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;try&lt;/span&gt; { &lt;span style="color:blue;"&gt;this&lt;/span&gt;.VDir = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;DirectoryEntry&lt;/span&gt;(&lt;span style="color:blue;"&gt;this&lt;/span&gt;.IISPath + &lt;span style="color:#a31515;"&gt;&amp;quot;/&amp;quot;&lt;/span&gt; + Virtual); }&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;catch&lt;/span&gt; { ;}&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (&lt;span style="color:blue;"&gt;this&lt;/span&gt;.VDir == &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;//Couldn&amp;#39;t create virtual.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;false&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; root.CommitChanges();&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VDir.CommitChanges();&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.SaveVirtualDirectory();&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; SaveVirtualDirectory()&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;PropertyCollection&lt;/span&gt; Properties = VDir.Properties;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;try&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Properties[&lt;span style="color:#a31515;"&gt;&amp;quot;Path&amp;quot;&lt;/span&gt;].Value = Path;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;catch&lt;/span&gt; (&lt;span style="color:#2b91af;"&gt;Exception&lt;/span&gt; ex)&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;//Invalid Path provided&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;false&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.VDir.Invoke(&lt;span style="color:#a31515;"&gt;&amp;quot;AppCreate&amp;quot;&lt;/span&gt;, &lt;span style="color:blue;"&gt;true&lt;/span&gt;);&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (&lt;span style="color:blue;"&gt;this&lt;/span&gt;.FriendlyName == &lt;span style="color:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;)&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VDir.Properties[&lt;span style="color:#a31515;"&gt;&amp;quot;AppFriendlyName&amp;quot;&lt;/span&gt;].Value = Virtual;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;else&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VDir.Properties[&lt;span style="color:#a31515;"&gt;&amp;quot;AppFriendlyName&amp;quot;&lt;/span&gt;].Value = &lt;span style="color:blue;"&gt;this&lt;/span&gt;.FriendlyName;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (&lt;span style="color:blue;"&gt;this&lt;/span&gt;.DefaultDocuments != &lt;span style="color:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;)&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VDir.Properties[&lt;span style="color:#a31515;"&gt;&amp;quot;DefaultDoc&amp;quot;&lt;/span&gt;].Value = &lt;span style="color:blue;"&gt;this&lt;/span&gt;.DefaultDocuments;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; Flags = 0;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (&lt;span style="color:blue;"&gt;this&lt;/span&gt;.AuthAnonymous)&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Flags = 1;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (&lt;span style="color:blue;"&gt;this&lt;/span&gt;.AuthBasic)&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Flags = Flags + 2;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (&lt;span style="color:blue;"&gt;this&lt;/span&gt;.AuthNTLM)&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Flags = Flags + 4;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Properties[&lt;span style="color:#a31515;"&gt;&amp;quot;AuthFlags&amp;quot;&lt;/span&gt;].Value = Flags;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VDir.CommitChanges();&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;font-family:consolas;background:white;color:black;font-size:12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=174082" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category></item><item><title>Reading Web Sites Status on IIS with .Net</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2008/11/03/reading-web-sites-status-on-iis-with-net.aspx</link><pubDate>Mon, 03 Nov 2008 09:49:04 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:161351</guid><dc:creator>Shai Raiten</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=161351</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2008/11/03/reading-web-sites-status-on-iis-with-net.aspx#comments</comments><description>&lt;div style="font-size:14pt;background:white;color:black;font-family:consolas;"&gt;   &lt;div style="font-size:14pt;background:white;color:black;font-family:consolas;"&gt;     &lt;h1&gt;&lt;font face="Arial"&gt;&lt;strong&gt;Reading Web Sites Status on IIS with .Net&lt;/strong&gt;&lt;/font&gt;&lt;/h1&gt;      &lt;p style="margin:0px;"&gt;This is some ability I needed for one of my tools.&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;Using &lt;span style="color:#2b91af;"&gt;DirectoryEntry&lt;/span&gt; to get information about IIS Web Sites and AppPools.&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;u&gt;&lt;strong&gt;Code Simple:&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;WebSiteEntry&lt;/span&gt;[] GetWebSites()&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;string&lt;/span&gt; Path = &lt;span style="color:#a31515;"&gt;&amp;quot;IIS://&amp;quot;&lt;/span&gt; + &lt;span style="color:blue;"&gt;this&lt;/span&gt;.DomainName + &lt;span style="color:#a31515;"&gt;&amp;quot;/W3SVC&amp;quot;&lt;/span&gt;;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;DirectoryEntry&lt;/span&gt; root = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;try&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; root = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;DirectoryEntry&lt;/span&gt;(Path);&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;catch&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color:#a31515;"&gt;&amp;quot;Couldn&amp;#39;t access root node&amp;quot;&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;&amp;quot;Error&amp;quot;&lt;/span&gt;,&lt;span style="color:#2b91af;"&gt;&amp;#160; MessageBoxButton&lt;/span&gt;.OK, &lt;span style="color:#2b91af;"&gt;MessageBoxImage&lt;/span&gt;.Information);&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;null&lt;/span&gt;;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (root == &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color:#a31515;"&gt;&amp;quot;Couldn&amp;#39;t access root node&amp;quot;&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;&amp;quot;Error&amp;quot;&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;MessageBoxButton&lt;/span&gt;.OK, &lt;span style="color:#2b91af;"&gt;MessageBoxImage&lt;/span&gt;.Information);&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;null&lt;/span&gt;;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;ArrayList&lt;/span&gt; WebSiteList = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ArrayList&lt;/span&gt;();&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color:#2b91af;"&gt;DirectoryEntry&lt;/span&gt; Entry &lt;span style="color:blue;"&gt;in&lt;/span&gt; root.Children)&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;PropertyCollection&lt;/span&gt; Properties = Entry.Properties;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;try&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;WebSiteEntry&lt;/span&gt; Site = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;WebSiteEntry&lt;/span&gt;();&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Site.SiteName = (&lt;span style="color:blue;"&gt;string&lt;/span&gt;)Properties[&lt;span style="color:#a31515;"&gt;&amp;quot;ServerComment&amp;quot;&lt;/span&gt;].Value;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Site.State = (&lt;span style="color:blue;"&gt;string&lt;/span&gt;)Properties[&lt;span style="color:#a31515;"&gt;&amp;quot;ServerState&amp;quot;&lt;/span&gt;].Value.ToString();&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;font color="#008000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- 2 – Start , 4 – Stoped, 6 – Paused --&amp;gt;&lt;/font&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WebSiteList.Add(Site);&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;catch&lt;/span&gt; { ; }&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; root.Close();&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; (&lt;span style="color:#2b91af;"&gt;WebSiteEntry&lt;/span&gt;[])WebSiteList.ToArray(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;WebSiteEntry&lt;/span&gt;));&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;   &lt;/div&gt;    &lt;div style="font-size:14pt;background:white;color:black;font-family:consolas;"&gt;     &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;WebSiteEntry&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; SiteName = &lt;span style="color:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; State = &lt;span style="color:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;   &lt;/div&gt;    &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;
&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=161351" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category></item></channel></rss>