<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ScottDotDot </title>
	<atom:link href="http://s.co.tt/tag/microsoft/feed/" rel="self" type="application/rss+xml" />
	<link>http://s.co.tt</link>
	<description>Babblings of a computer curmudgeon.</description>
	<lastBuildDate>Mon, 26 Jan 2026 16:08:52 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.1</generator>
	<item>
		<title>Outlook / Exchange Error: Network Problems or the Microsoft Exchange Server Computer is Down for Maintenance</title>
		<link>http://s.co.tt/2020/01/27/outlook-exchange-error-network-problems-or-the-microsoft-exchange-server-computer-is-down-for-maintenance/</link>
		<comments>http://s.co.tt/2020/01/27/outlook-exchange-error-network-problems-or-the-microsoft-exchange-server-computer-is-down-for-maintenance/#comments</comments>
		<pubDate>Mon, 27 Jan 2020 23:16:11 +0000</pubDate>
		<dc:creator><![CDATA[Scott]]></dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[Exchange Server]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Oulook]]></category>

		<guid isPermaLink="false">http://s.co.tt/?p=2070</guid>
		<description><![CDATA[There are tons of posts about this subject, but none of them offered the very simple solution that worked for me: Make sure the Microsoft Exchange System Attendant is running on the mailbox server. We had a catastrophic crash of a VM host, on which our Exchange 2013 server was running as a guest. Everything seemed to come back up just fine, and all Outlook users were back online with Exchange, except for two. One user was running Outlook 2016 like the rest of the org, but one was running Outlook 2007 (don&#8217;t ask). They seemed to have nothing in common, but they both were throwing errors that network problems were preventing communication with the Exchange server. I did all … <a class="continue-reading-link" href="http://s.co.tt/2020/01/27/outlook-exchange-error-network-problems-or-the-microsoft-exchange-server-computer-is-down-for-maintenance/"> Continue reading</a>]]></description>
				<content:encoded><![CDATA[<p><center><img src="http://s.co.tt/wp-content/uploads/2020/01/ms_exchange_angry_cry-740x435.jpg" alt="ms_exchange_angry_cry" width="740" height="435" class="aligncenter size-large wp-image-2073" /></center></p>
<p>There are tons of posts about this subject, but none of them offered the very simple solution that worked for me:</p>
<p>Make sure the <strong>Microsoft Exchange System Attendant</strong> is <strong>running</strong> on the mailbox server.</p>
<p>We had a catastrophic crash of a VM host, on which our Exchange 2013 server was running as a guest.  Everything seemed to come back up just fine, and all Outlook users were back online with Exchange, <strong>except for two</strong>.</p>
<p>One user was running Outlook 2016 like the rest of the org, but one was running Outlook 2007 (don&#8217;t ask).  They seemed to have nothing in common, but they both were throwing errors that network problems were preventing communication with the Exchange server.</p>
<p>I did all sorts of crap, resorting to deleting the Outlook profiles and re-creating them.  But even when starting Outlook in safe mode without caching, it would complain about the network connectivity immediately.</p>
<p>Here&#8217;s the description of the Microsoft Exchange System Attendant:</p>
<blockquote><p>Forwards directory lookups to a global catalog server <strong>for legacy Outlook clients</strong>, generates e-mail addresses and offline address books, updates free/busy information <strong>for legacy clients</strong>, and maintains permissions and group memberships for the server.</p></blockquote>
<p>The emphasis is mine, because it&#8217;s a very strange situation.  I understand why the Outlook 2007 client &#8212; which is very much legacy &#8212; wouldn&#8217;t work.  But why this one particular Outlook 2016 client?  Like I said, every other user in the organization uses 2016, and they were all working fine.</p>
<p>Anywho, I hope this helps someone out who might be seeing one of the same red herring errors:</p>
<blockquote><p>Cannot start Microsoft Office Outlook. Unable to open the Outlook window. The set of folders could not be opened.</p></blockquote>
<blockquote><p>Unable to open your default e-mail folders. The Microsoft Exchange Server computer is not available. Either there are network problems or the Microsoft Exchange Server computer is down for maintenance.</p></blockquote>
<blockquote><p>The connection to the Microsoft Exchange Server is unavailable. Outlook must be online or connected to complete this action.</p></blockquote>
<blockquote><p>Unable to open your default e-mail folders. The information store could not be opened.</p></blockquote>
<blockquote><p>Outlook could not log on. Check to make sure you are connected to the network and are using the proper server and mailbox name. The connection to the Microsoft Exchange Server is unavailable. Outlook must be online or connected to complete this action.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://s.co.tt/2020/01/27/outlook-exchange-error-network-problems-or-the-microsoft-exchange-server-computer-is-down-for-maintenance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Web Deploy &#8211; Bad Application, or the Worst Application?</title>
		<link>http://s.co.tt/2015/02/24/microsoft-web-deploy-bad-application-or-the-worst-application/</link>
		<comments>http://s.co.tt/2015/02/24/microsoft-web-deploy-bad-application-or-the-worst-application/#comments</comments>
		<pubDate>Tue, 24 Feb 2015 23:03:27 +0000</pubDate>
		<dc:creator><![CDATA[Scott]]></dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[stupid corporations]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://s.co.tt/?p=1071</guid>
		<description><![CDATA[Background I&#8217;m migrating a bunch of corporate websites hosted on Win2k8 and IIS7 to a new server running exactly the same. I&#8217;m sticking with the same environment because there are some things I really don&#8217;t want to risk breaking &#8212; we just needed faster hardware and more spindles. I figured I&#8217;d use MS Web Deploy 3.5 to move all the IIS settings from one server to the other (a task that was gloriously simple in IIS6). Web Deploy adds the following option to the IIS Manager context menus for the server and individual sites: It looks great! Simple and straightforward. Export or import. Indeed it&#8217;s a simple interface. I wanted to export everything, so I chose to deploy from the … <a class="continue-reading-link" href="http://s.co.tt/2015/02/24/microsoft-web-deploy-bad-application-or-the-worst-application/"> Continue reading</a>]]></description>
				<content:encoded><![CDATA[<h1>Background</h1>
<p>I&#8217;m migrating a bunch of corporate websites hosted on Win2k8 and IIS7 to a new server running exactly the same.  I&#8217;m sticking with the same environment because there are some things I really don&#8217;t want to risk breaking &#8212; we just needed faster hardware and more spindles.</p>
<p>I figured I&#8217;d use MS Web Deploy 3.5 to move all the IIS settings from one server to the other (a task that was gloriously simple in IIS6).</p>
<p>Web Deploy adds the following option to the IIS Manager context menus for the server and individual sites:</p>
<div id="attachment_1072" style="width: 520px" class="wp-caption aligncenter"><a href="http://s.co.tt/wp-content/uploads/2015/02/MicrosoftWebDeploy_IIS_manager_interface.png"><img src="http://s.co.tt/wp-content/uploads/2015/02/MicrosoftWebDeploy_IIS_manager_interface.png" alt="MicrosoftWebDeploy_IIS_manager_interface" width="510" height="403" class="size-full wp-image-1072" /></a><p class="wp-caption-text">Oh goodie, I can deploy!</p></div>
<p>It looks great!  Simple and straightforward.  Export or import.</p>
<p>Indeed it&#8217;s a simple interface.  I wanted to export everything, so I chose to deploy from the server level.</p>
<h1>But..</h1>
<p>But it&#8217;s never really that simple, is it?  (Well, except in IIS6.)</p>
<p>Here&#8217;s a redacted view of the package contents selector.  It&#8217;s actually about 50 items at the top level, but annoyingly the box cannot be resized (though it does scroll horizontally by itself which is super annoying):</p>
<p><a href="http://s.co.tt/wp-content/uploads/2015/02/MicrosoftWebDeploy_export_server_package_contents_selector.png"><img src="http://s.co.tt/wp-content/uploads/2015/02/MicrosoftWebDeploy_export_server_package_contents_selector.png" alt="MicrosoftWebDeploy_export_server_package_contents_selector" width="585" height="447" class="aligncenter size-full wp-image-1073" /></a></p>
<p>OK, it looks like all the settings and crap that&#8217;s in IIS.  <strong>What it doesn&#8217;t show, and hence what&#8217;s not selectable, is that the file system contents is included in the package.</strong>  I had already robocopied the file system over, thinking that I&#8217;d just be exporting and importing the IIS <strong>settings</strong>.  It generated a 25GB zip file.</p>
<p>It was a horrible waste of time, because it <strong>forces</strong> you to encrypt the contents of the package (even though I was exporting it to the local file system and would be copying it across a private LAN <strong>and</strong> there&#8217;s no sensitive customer data in there).  I can copy the uncompressed files much faster than compressing <strong>and encrypting</strong> something like 40GB of content.</p>
<p>Whatever, I can deal with that.  <strong>Except there&#8217;s no way to cancel the operation!</strong>  The cancel button is greyed out.  The &#8220;X&#8221; in the upper-right to close the dialog is clickable, and in fact does close it.  Except that the operation keeps running in the background, which is not made clear anywhere in the UI.  I didn&#8217;t realize that and went back to messing around with options, and eventually saw that a 25GB file had popped up in my temp dir!</p>
<h1>Now for the import..</h1>
<p>I temporarily moved some hardly-ever-accessed directories out of the web hierarchy so that I could run a faster export.  A nice compact 2.7GB file was the result.  I moved that over to the new server, and did the ol&#8217; <strong>Deploy -&gt; Import</strong>.  It started, <strong>and then crashed right away.</strong></p>
<p>The operation failed with the most user-unfriendly, borderline-useless, college-project error message possible:  <strong>Object reference not set to an instance of an object.</strong></p>
<div id="attachment_1074" style="width: 750px" class="wp-caption aligncenter"><a href="http://s.co.tt/wp-content/uploads/2015/02/MicrosoftWebDeploy_object_ref_not_set_instance_object_ss_20150224.png"><img src="http://s.co.tt/wp-content/uploads/2015/02/MicrosoftWebDeploy_object_ref_not_set_instance_object_ss_20150224-740x369.png" alt="MicrosoftWebDeploy_object_ref_not_set_instance_object_ss_20150224" width="740" height="369" class="size-large wp-image-1074" /></a><p class="wp-caption-text">Click for the full monty.</p></div>
<p>We&#8217;ve all seen that error message before, but on a mature product from a multi-billion dollar company?  Phhht.  <em>What am I talking about, it&#8217;s Microsoft after all.</em></p>
<p>At least they included the stack trace!  That at least gives a clue!</p>
<pre><code>System.NullReferenceException: Object reference not set to an instance of an object.
   at <strong>Microsoft.Web.Deployment.CertStoreSettingsProvider.Delete</strong>(Boolean whatIf)
   at Microsoft.Web.Deployment.DeploymentObject.DeleteOperation(DeploymentSyncContext syncContext)
   at Microsoft.Web.Deployment.DeploymentObject.Delete(DeploymentSyncContext syncContext)
   at Microsoft.Web.Deployment.DeploymentSyncContext.HandleDelete(DeploymentObject destObject, DeploymentObject sourceParentObject)
   at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
   at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
   at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject)
   at Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable`1 syncPassId, String syncSessionId)
   at Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentProviderOptions providerOptions, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)
   at Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentWellKnownProvider provider, String path, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)
   at Microsoft.Web.Deployment.UI.InstallProgressWizardPage.OnWorkerDoWork(Object sender, DoWorkEventArgs e)
   at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)</code></pre>
<p>As you can see from the second line, it&#8217;s trying to delete something from the Certificate Store (I suppose).  A quick Googling found <a href="http://forums.iis.net/t/1207387.aspx" target="_blank">a German guy that was experiencing the same error</a>.  That lead to <a href="" target="_blank">a red herring post about different .NET framework versions</a> (I have the same versions of .NET installed on both machines, so that&#8217;s not my issue).</p>
<p>Unfortunately I had closed the error dialog, but I tried running the process again and I noticed this:</p>
<div id="attachment_1077" style="width: 505px" class="wp-caption aligncenter"><a href="http://s.co.tt/wp-content/uploads/2015/02/MicrosoftWebDeploy_HKLM_IIS_detail_ss_20150224.png"><img src="http://s.co.tt/wp-content/uploads/2015/02/MicrosoftWebDeploy_HKLM_IIS_detail_ss_20150224.png" alt="MicrosoftWebDeploy_HKLM_IIS_detail_ss_20150224" width="495" height="196" class="size-full wp-image-1077" /></a><p class="wp-caption-text">There&#8217;s the key that&#8217;s causing all the faff.</p></div>
<p>So it&#8217;s trying to delete <code>HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/IIS/CentralCertProvider</code>, which <strong>doesn&#8217;t exist on either the source or destination server</strong>.  In fact, <strong>the entire IIS key doesn&#8217;t exist</strong>.  The solution seemed obvious to me:</p>
<div id="attachment_1078" style="width: 633px" class="wp-caption aligncenter"><a href="http://s.co.tt/wp-content/uploads/2015/02/MicrosoftWebDeploy_HKLM_IIS_creation_ss_20150224.png"><img src="http://s.co.tt/wp-content/uploads/2015/02/MicrosoftWebDeploy_HKLM_IIS_creation_ss_20150224.png" alt="MicrosoftWebDeploy_HKLM_IIS_creation_ss_20150224" width="623" height="338" class="size-full wp-image-1078" /></a><p class="wp-caption-text">That&#8217;s right.</p></div>
<p>That&#8217;s right, <strong>I just created the key and added a nonsense string value for no reason</strong>.  It then ran past the point of the <code>NullReferenceException</code>.</p>
<h1>But wait, there&#8217;s more!</h1>
<p><strong>It crashed again, with an error message and stack trace even more useless than the first:</strong></p>
<div id="attachment_1079" style="width: 750px" class="wp-caption aligncenter"><a href="http://s.co.tt/wp-content/uploads/2015/02/MicrosoftWebDeploy_count_non-neg_error_ss_20150224.png"><img src="http://s.co.tt/wp-content/uploads/2015/02/MicrosoftWebDeploy_count_non-neg_error_ss_20150224-740x381.png" alt="MicrosoftWebDeploy_count_non-neg_error_ss_20150224" width="740" height="381" class="size-large wp-image-1079" /></a><p class="wp-caption-text">Click for full size.</p></div>
<p>I can&#8217;t sigh enough at this one.  I&#8217;m not asking for the world here, but at least <strong>say what file and line you were processing when the exception was thrown</strong>.  This is Computer Programming 101 level stuff here.  <strong>Not what you&#8217;d expect from version 3.5 of a utility meant for enterprise use.</strong>  Even when I half-ass programs for my own personal use (which I do quite often), I have better error handling.</p>
<pre><code>System.ArgumentOutOfRangeException: 'count' must be non-negative.
Parameter name: count
   at System.String.CtorCharCount(Char c, Int32 count)
   at Microsoft.Web.Deployment.XmlElementProvider.GetIndentWhitespace(XmlElement element, XmlWhitespace&#038; before, XmlWhitespace&#038; after)
   at Microsoft.Web.Deployment.XmlElementProvider.AddChild(DeploymentObject source, Int32 position, Boolean whatIf)
   at Microsoft.Web.Deployment.DeploymentObject.AddChild(DeploymentObject source, Int32 position, DeploymentSyncContext syncContext)
   at Microsoft.Web.Deployment.DeploymentSyncContext.HandleAddChild(DeploymentObject destParent, DeploymentObject sourceObject, Int32 position)
   at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
   at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(DeploymentObject dest, DeploymentObject source)
   at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(DeploymentObject dest, DeploymentObject source)
   at Microsoft.Web.Deployment.DeploymentSyncContext.HandleAddChild(DeploymentObject destParent, DeploymentObject sourceObject, Int32 position)
   at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
   at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
   at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject)
   at Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable`1 syncPassId, String syncSessionId)
   at Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentProviderOptions providerOptions, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)
   at Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentWellKnownProvider provider, String path, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)
   at Microsoft.Web.Deployment.UI.InstallProgressWizardPage.OnWorkerDoWork(Object sender, DoWorkEventArgs e)
   at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)</code></pre>
<p>Moreover, is this even a recoverable error?  It looks like it&#8217;s trying to count the characters using <code>CtorCharCount</code>, which is some kind of private or protected method (?) called in the String constructor (apparently):</p>
<blockquote><p>CtorCharCount is one of those optimizing implementation details that can get kind of confusing if you try to expose it to users.  It&#8217;s called as part of the string ctor in some cases.  <em>(Source: <a href="https://social.msdn.microsoft.com/Forums/en-US/55e31dcd-76f4-4f78-9731-92f47e7767ee/objectid-retrieval-problems?forum=netfxtoolsdev" target="_blank">social.msdn.microsoft.com</a>)</em></p></blockquote>
<p>It&#8217;s constructing some string while adding a child to an XML node (?) during some kind of sync (?) process, <strong>or something</strong>.  If this were based upon open source code I could figure it out pretty easily.  But it&#8217;s most definitely not open source.</p>
<h1>Work around?</h1>
<p>Nope.  I figured I&#8217;d start by trying to export and then import the sites one by one to see which one causes an error.  <strong>Well, if you export a site you can&#8217;t import it unless that site exists on the target.</strong>  It treats the site as a Web Application, even if you&#8217;re exporting the entire site.</p>
<p>I tried de-selecting all the <code>locations</code> except for one very simple website in the server export, but it still failed.</p>
<p>And now&#8230;</p>
<h1>I don&#8217;t care anymore.</h1>
<p>I&#8217;ve already wasted too much time on this.  <strong>More time in fact than it will take me to manually recreate the handful of websites and web apps on the new server.</strong>  So I&#8217;m done.  I hope that if you were encountering the <code>NullReferenceException</code> this helped you.</p>
<p>Otherwise it was cathartic for me.</p>
<p>I wouldn&#8217;t be so hard on the developers of this tool if I were doing anything weird or unexpected.  But I&#8217;m trying to <strong>migrate the settings from one instance of IIS to another</strong>, which is what the tool is alleged to do.  The sites and web apps I have to migrate are few, and they&#8217;re not very complicated.  This should have worked right off the bat.</p>
<p>If anyone has a solution, please let me know.  Maybe I&#8217;m just being blinded by irritation and I&#8217;m missing something simple.  But like I said, it&#8217;s time to go and do this the old-fashioned way.</p>
<p><a href="http://s.co.tt/wp-content/uploads/2015/02/MicrosoftWebDeploy_in_a_Japanese_toilet_2.jpg"><img src="http://s.co.tt/wp-content/uploads/2015/02/MicrosoftWebDeploy_in_a_Japanese_toilet_2-740x325.jpg" alt="Down load Microsoft Web Deploy to your toilet today!" width="740" height="325" class="aligncenter size-large wp-image-1085" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://s.co.tt/2015/02/24/microsoft-web-deploy-bad-application-or-the-worst-application/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
