<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>5 Limes Blog</title>
	
	<link>http://www.5limes.com.au/blog</link>
	<description>Adventures in Microsoft Enterprise Technologies</description>
	<lastBuildDate>Fri, 11 Jun 2010 05:26:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/5LimesBlog" /><feedburner:info uri="5limesblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Installing VeriSign Certificates with Internet Explorer 8 (IE8)</title>
		<link>http://feedproxy.google.com/~r/5LimesBlog/~3/7UlFeJnuhGY/installing-verisign-certificates-with-internet-explorer-8-ie8.html</link>
		<comments>http://www.5limes.com.au/blog/index.php/installing-verisign-certificates-with-internet-explorer-8-ie8.html#comments</comments>
		<pubDate>Thu, 10 Jun 2010 01:57:38 +0000</pubDate>
		<dc:creator>Richard</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.5limes.com.au/blog/index.php/installing-verisign-certificates-with-internet-explorer-8-ie8.html</guid>
		<description><![CDATA[I recently had an infuriating experience with VeriSign that I wouldn’t wish on my worst enemy, so I thought I’d try to save someone a bunch of time and frustration by putting the fix on the ‘net.
When submitting a product for Windows Logo certification one is required to digitally sign and submit a file (winqual.exe) [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had an infuriating experience with VeriSign that I wouldn’t wish on my worst enemy, so I thought I’d try to save someone a bunch of time and frustration by putting the fix on the ‘net.</p>
<p>When submitting a product for Windows Logo certification one is required to digitally sign and submit a file (winqual.exe) to the winqual.microsoft.com web site.&nbsp; In order to sign the file you first need a VeriSign organisation certificate that, presumably, is designed to verify you are from the company you purport to be from.&nbsp; Fair enough.</p>
<p>The VeriSign process is relatively straight forward:</p>
<ol>
<li>Go to their web site and purchase the certificate</li>
<li>They send you an email with a URL and a PIN</li>
<li>You go to the web site and “Install Certificate” direct from the web page</li>
</ol>
<p>It’s in step 3 where it all went horribly wrong for me.&nbsp; Stupidly, I am not using IE7.&nbsp; After several lengthy discussions with VeriSign “chat consultants” I was told in no uncertain terms that IE7 was the only supported browser and that to get my certificate I <strong>had</strong> to “find a machine with IE7 on it”.&nbsp; Then I could simply export the certificate and move it later.</p>
<p>I had used IE8 on Windows 7 x64 to make the order, and it turns out that even if you do find a IE7 machine it still won’t work because it has to be the same machine you placed the order on.&nbsp; I confirmed, that Firefox, Chrome and Safari also will not work.</p>
<h4>Diagnosis</h4>
<p>Faced with basically no way forward I decided to fix the problem for them.&nbsp; I had noticed that my IE8 was throwing script errors so I pulled up the source and noticed that VeriSign are using VBScript to write an object tag, which loads a COM dll of their making, which in turn records the public key in Windows’ certificate store.</p>
<p>My first attempt was to take the VBScript code and make a “vbs” file out of it but that really seemed like it was a bit harder than it should have to be.</p>
<h4>The Fix</h4>
<p>On my second attempt I simply marked the VeriSign web site as “Trusted” and the “Install Certificate” button on the page worked like a charm.</p>
<p>VeriSign FAIL!</p>
<p>So, OK this port could have been shorter, but now you know. Make VerSign’s web site trusted before (or during) the process to get the certificate installed. Don’t bother asking VeriSign for help.&nbsp; They can’t.</p>
<h4>Making a web site trusted in IE8</h4>
<p><strong>Tools</strong> –&gt; <strong>Internet Options</strong> –&gt; <strong>Security</strong> tab –&gt; <strong>Trusted sites</strong> –&gt; <strong>Sites</strong> button –&gt; Type <a href="https://*.verisign.com">https://*.verisign.com</a> and click <strong>Add</strong></p>
<p>Now you know.</p>
<img src="http://feeds.feedburner.com/~r/5LimesBlog/~4/7UlFeJnuhGY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.5limes.com.au/blog/index.php/installing-verisign-certificates-with-internet-explorer-8-ie8.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.5limes.com.au/blog/index.php/installing-verisign-certificates-with-internet-explorer-8-ie8.html</feedburner:origLink></item>
		<item>
		<title>Visual Studio 2010 web publishing issue with the .browser files</title>
		<link>http://feedproxy.google.com/~r/5LimesBlog/~3/JszcUbNymik/vs-2010-web-publishing-issue-with-the-browser-files.html</link>
		<comments>http://www.5limes.com.au/blog/index.php/vs-2010-web-publishing-issue-with-the-browser-files.html#comments</comments>
		<pubDate>Fri, 14 May 2010 01:31:02 +0000</pubDate>
		<dc:creator>tony.haryanto</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[.NET Development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.5limes.com.au/blog/index.php/vs-2010-web-publishing-issue-with-the-browser-files.html</guid>
		<description><![CDATA[We moved a VS 2008 web site project to VS 2010, and when we did a publish using the “Publish Web Site”, somehow all the customised Adapter classes that we implemented within the .browser files didn’t get executed.
After a very thorough investigation, especially after we looked into the App_Browsers.dll assembly through a reflection tool, we [...]]]></description>
			<content:encoded><![CDATA[<p>We moved a VS 2008 web site project to VS 2010, and when we did a publish using the “Publish Web Site”, somehow all the customised Adapter classes that we implemented within the .browser files didn’t get executed.</p>
<p>After a very thorough investigation, especially after we looked into the App_Browsers.dll assembly through a reflection tool, we found out that the publishing process altered the controltype attribute in the .browser files from this:</p>
<p><em><font color="#0000ff" size="2">System.Web.UI.WebControls.Menu, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</font></em></p>
<p>to this:</p>
<p><font color="#0000ff"><em>System.Web.UI.WebControls.Menu, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</em></font></p>
<p>It seems that App_Browser.dll file generator of VS 2010 is making a bad assumption even though the target framework is set to .Net 3.5. Because the web application is set to run on 2.0 framework, those control type is not matched.</p>
<p>Fortunately, we’ve figured a work around which is by deleting the App_Browser.dll and the related .compiled file out of the bin directory after publishing, and copy the uncompiled .browser files back into the App_Browsers directory.</p>
<img src="http://feeds.feedburner.com/~r/5LimesBlog/~4/JszcUbNymik" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.5limes.com.au/blog/index.php/vs-2010-web-publishing-issue-with-the-browser-files.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.5limes.com.au/blog/index.php/vs-2010-web-publishing-issue-with-the-browser-files.html</feedburner:origLink></item>
		<item>
		<title>FIX: Using an embedded SurveyGizmo Survey on a page with jQuery</title>
		<link>http://feedproxy.google.com/~r/5LimesBlog/~3/I4bSCHM4ywE/using-an-embedded-surveygizmo-survey-on-a-page-with-jquery.html</link>
		<comments>http://www.5limes.com.au/blog/index.php/using-an-embedded-surveygizmo-survey-on-a-page-with-jquery.html#comments</comments>
		<pubDate>Wed, 09 Sep 2009 01:42:52 +0000</pubDate>
		<dc:creator>Richard</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[SurveyGizmo]]></category>

		<guid isPermaLink="false">http://www.5limes.com.au/blog/index.php/using-an-embedded-surveygizmo-survey-on-a-page-with-jquery.html</guid>
		<description><![CDATA[We use SurveyGizmo (www.surveygizmo.com) with many of our clients to provide author generated forms and surveys.  It has lots of great features, and one terribly annoying one.  The main mechanism for deploying a form or survey is to use some JavaScript automatically generated by SurveyGizmo to download and embed the form or survey in the [...]]]></description>
			<content:encoded><![CDATA[<p>We use SurveyGizmo (<a href="http://www.surveygizmo.com">www.surveygizmo.com</a>) with many of our clients to provide author generated forms and surveys.  It has lots of great features, and one terribly annoying one.  The main mechanism for deploying a form or survey is to use some JavaScript automatically generated by SurveyGizmo to download and embed the form or survey in the host page AJAX-style.  Super cool, I hear you say.  And I agree. But…</p>
<p>Unfortunately SurveyGizmo use a JavaScript function “$” that is an internal system function.  The astute amongst you have noticed the “$” function is used by many other JS frameworks, notably jQuery, becoming increasingly popular and soon to be embedded in Visual Studio 2010 (or so I am led to believe).</p>
<p>The upshot is that all your jQuery defined after your survey is embedded on the page will break.  That’s bad.</p>
<p>I was advised by SG support to use the jQuery.noConflict() function, which makes SG work properly (that’s good) but it also means all your jQuery now uses a function called “jQuery” in place of “$” (that’s bad… again).</p>
<p>We devised a workaround that lets everybody play nice and it seems to work for us so far – thusly:</p>
<blockquote><p><em>Immediately before the SG injection script add the following:</em></p>
<p><em>&lt;script&gt; var JQ$ = $; &lt;/script&gt;</em></p>
<p><em>Add SG injection script as normal </em></p>
<p><em>Immediately after the SG injection script add the following:</em></p>
<p><em>&lt;script&gt; $ = JQ$; &lt;/script&gt;</em></p></blockquote>
<p>Basically we keep a copy of the jQuery “$” function in a variable and restore it to its original value when the SG scripts have finished.  I do this rather than using “<strong>var $ = function( selector, context ) { return new jQuery.fn.init( selector, context ); }</strong>” because jQuery may change their initialisation parameters at a later date and I prefer to not have to update my code.</p>
<img src="http://feeds.feedburner.com/~r/5LimesBlog/~4/I4bSCHM4ywE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.5limes.com.au/blog/index.php/using-an-embedded-surveygizmo-survey-on-a-page-with-jquery.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.5limes.com.au/blog/index.php/using-an-embedded-surveygizmo-survey-on-a-page-with-jquery.html</feedburner:origLink></item>
		<item>
		<title>Apple iPhone won’t display in Vista’s Windows Explorer</title>
		<link>http://feedproxy.google.com/~r/5LimesBlog/~3/xBV69pfOp1U/apple-iphone-wont-display-in-vistas-windows-explorer.html</link>
		<comments>http://www.5limes.com.au/blog/index.php/apple-iphone-wont-display-in-vistas-windows-explorer.html#comments</comments>
		<pubDate>Wed, 13 May 2009 01:46:46 +0000</pubDate>
		<dc:creator>Richard</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Explorer]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Vista]]></category>

		<guid isPermaLink="false">http://www.5limes.com.au/blog/?p=25</guid>
		<description><![CDATA[A quick post that may help a few people whose iPhone has suddenly disappeared from Windows Explorer.  I use Vista Ultimate but I suggest this technique will work for XP and other Vista variants as well.  Normally the iPhone appears like a camera to Windows Vista (albeit with a cute iPhone icon) which allows access [...]]]></description>
			<content:encoded><![CDATA[<p>A quick post that may help a few people whose iPhone has suddenly disappeared from Windows Explorer.  I use Vista Ultimate but I suggest this technique will work for XP and other Vista variants as well.  Normally the iPhone appears like a camera to Windows Vista (albeit with a cute iPhone icon) which allows access to the phone&#8217;s Camera Roll.</p>
<p>I went looking to pull the photos off my iPhone this morning only to discover that it wasn&#8217;t showing up in Windows Explorer as a device anymore.  Quite certain it worked at one point but what can you do.</p>
<p>The drivers that make the iPhone appear as a USB device are usbaapl.sys and usbaaplrc.dll.  If your installing you should look for usbaapl.inf which is in <strong>C:\Program Files\Common Files\Apple\Mobile Device Support\Drivers</strong>. More about this later.</p>
<p>Connect your iPhone by USB, then open Windows Device Manager (right-click My Computer and select Manage). You may find your iPhone under &#8220;Universal Serial Bus Controllers&#8221;, where mine was, or possibly under &#8220;Portable Devices&#8221;.  At any rate if your phone can sync with iTunes it will be in there somewhere.  It should be called <em>Apple Mobile Device USB Driver</em> or something like that. When you find it, right-click and select &#8220;Uninstall&#8221; but <strong>don&#8217;t remove the files from the PC</strong>.  There&#8217;s nothing wrong with the files (probably) it&#8217;s just the device registration that has become cactus.</p>
<p>Once uninstalled disconnect the device and reconnect again.  After a minute you should see the device registered correctly, iTunes fires up and Windows Explorer shows your iPhone as a camera again.  Job done.</p>
<p>My driver files were already in Windows\System32 directory cause that&#8217;s where drivers go, but the original files that ship from Apple can usually be found at <strong>C:\Program Files\Common Files\Apple\Mobile Device Support</strong>.  If you deleted the files in the uninstall step when you shouldn&#8217;t have you can likely find them there, otherwise I would re-install iTunes cause I would guess they ship with the iTunes software though I can&#8217;t confirm that.</p>
<img src="http://feeds.feedburner.com/~r/5LimesBlog/~4/xBV69pfOp1U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.5limes.com.au/blog/index.php/apple-iphone-wont-display-in-vistas-windows-explorer.html/feed</wfw:commentRss>
		<slash:comments>28</slash:comments>
		<feedburner:origLink>http://www.5limes.com.au/blog/index.php/apple-iphone-wont-display-in-vistas-windows-explorer.html</feedburner:origLink></item>
		<item>
		<title>Microsoft Exchange 2003 Direct Push and the Apple iPhone 3G</title>
		<link>http://feedproxy.google.com/~r/5LimesBlog/~3/1WdBuan_c30/microsoft-exchange-2003-direct-push-and-the-apple-iphone-3g.html</link>
		<comments>http://www.5limes.com.au/blog/index.php/microsoft-exchange-2003-direct-push-and-the-apple-iphone-3g.html#comments</comments>
		<pubDate>Wed, 16 Jul 2008 03:59:13 +0000</pubDate>
		<dc:creator>Richard</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Exchange 2003]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.5limes.com.au/blog/index.php/microsoft-exchange-2003-direct-push-and-the-apple-iphone-3g.html</guid>
		<description><![CDATA[Like any good technophile I picked up a new iPhone 3G on Friday the 11th and the very first thing I did when getting back to the office was to try to get my Exchange Server to do Direct Push.  I have had some small frustrations from the wide distribution of documentation on the [...]]]></description>
			<content:encoded><![CDATA[<p>Like any good technophile I picked up a new iPhone 3G on Friday the 11<sup>th</sup> and the very first thing I did when getting back to the office was to try to get my Exchange Server to do Direct Push.  I have had some small frustrations from the wide distribution of documentation on the subject so hopefully this post will save someone some time.</p>
<p>For the sake of simplicity this article will deal with the simple case of:</p>
<ul>
<li>Stand alone Exchange, i.e. not a front-end/back-end setup</li>
<li>No proxy server, e.g. ISA</li>
<li>Single firewall</li>
</ul>
<p>Frankly if your setup is more complicated than that you probably already know how to do this and aren&#8217;t reading this anyway.  Moving right along&#8230;</p>
<p>This is what you&#8217;ll need before you get started:</p>
<ul>
<li>An iPhone 3G (it doesn&#8217;t work on the v1 phone)</li>
<li>Exchange Server 2003 <strong>SP2</strong> or later</li>
<li>Access to your firewall/router</li>
<li>A fixed IP address on the internet</li>
<li>Access to your domain settings</li>
<li>
<div>A valid SSL certificate on your Exchange server – get one, they&#8217;re not that expensive</div>
<ul>
<li><a href="http://www.completessl.com/" target="_blank">http://www.completessl.com</a> from USD$49</li>
<li><a href="http://www.instantssl.com/" target="_blank">http://www.instantssl.com</a> from USD$65</li>
<li><a href="http://www.trustico.com.au/" target="_blank">http://www.trustico.com.au</a> from AUD$20</li>
</ul>
</li>
</ul>
<p><span style="font-size:12pt"><strong>Background<br />
</strong></span></p>
<p>Direct Push works because the internet is slow.  That&#8217;s the headline.</p>
<p>Basically the iPhone will make an HTTPS connection to your Exchange Server&#8217;s &#8220;Microsoft-Server-ActiveSync&#8221; virtual folder (most likely on the default web site).  It will hold each connection open as long as possible, or until some pre-configured timeouts occur.  Should you receive an email during this open connection, Exchange will send notification down to the iPhone which will tell you that you have new mail.  Simple as that.  The reason it works is because the internet protocols were designed to not receive an instant response from the server when making a request (see &#8220;slow&#8221; above).  Direct Push takes advantage of this extended open connection.</p>
<p>To prevent your battery from draining in 25 minutes flat the chatter on the connection is kept to a minimum.  It&#8217;s very clever.</p>
<p><span style="font-size:12pt"><strong>Before You Start<br />
</strong></span></p>
<p>If you have a Wi-Fi connection active on the phone it won&#8217;t work.  Direct Push only works over the air (the 3G connection).  This is because the Wi-Fi radio <em>will</em> kill your battery.  With Wi-Fi enabled I believe the phone reverts to a pull model, based on observation, but I can&#8217;t confirm that.</p>
<p><span style="font-size:12pt"><strong>Setup<br />
</strong></span></p>
<p>Is your iPhone&#8217;s Wi-Fi off?</p>
<p><strong><em>Step 1. Router/Firewall Setup</em></strong></p>
<ul>
<li>Go to the &#8220;Port forwarding&#8221; or &#8220;Services&#8221; setup</li>
<li>Open port 443 on TCP to enable the HTTPS communication – do not be tempted to do this using HTTP.  It&#8217;s possible, but don&#8217;t do it.  You have been warned.</li>
<li>Make sure the endpoint is your Exchange server&#8217;s internal IP address</li>
<li>Restart the router/firewall</li>
</ul>
<p><strong><em>Step 2. Domain Name Setup<br />
</em></strong></p>
<ul>
<li>Add a new host to your internet domain called &#8220;exchange&#8221; and point it to your router&#8217;s fixed internet IP address – not absolutely necessary but it makes everything a bit clearer if you ask me.</li>
</ul>
<p><strong><em>Step 3. Exchange 2003 SP2 Setup<br />
</em></strong></p>
<ul>
<li>Open Exchange System Manager</li>
<li>Expand &#8220;Global Settings&#8221;</li>
<li>Right-click &#8220;Mobile Services&#8221; and select &#8220;Properties&#8221;</li>
<li>
<div>There are several options required to support older technologies but the ones you want right at the moment are as follows:</div>
<ul>
<li>Enable user initiated synchronisation – get the whole thing started</li>
<li>Enable Direct Push over HTTP(S) – the bit we want</li>
</ul>
</li>
<li>
<div>Optionally configure Device Security – I recommend it cause then if you lose the thing you can do a &#8220;remote wipe&#8221;.  These are the settings I like:</div>
<ul>
<li>Enforce password on device – makes you enter a PIN to get into the iPhone which is a bit of a pain but worth it for the security.  Do you want anyone who finds your phone to have access to all your email and contacts? Cause that&#8217;s what will happen.</li>
<li>Wipe device after failed attempts – this means if you get the password wrong enough times the phone will wipe itself.  Set this number as low as you dare.</li>
<li>Refresh settings on the device – set this to 24 to ensure the security policy is checked for updates daily</li>
</ul>
</li>
</ul>
<p><strong><em>Step 4. Configure Your Users<br />
</em></strong></p>
<ul>
<li>Open Active Directory Users and Computers on the Exchange server</li>
<li>Right-click the user to configure and select &#8220;Exchange Tasks&#8221;</li>
<li>Select &#8220;Configure Exchange Features&#8221; from the task list</li>
<li>Under &#8220;Mobile Services&#8221; ensure that &#8220;User Initiated Synchronisation&#8221; and &#8220;Up-to-date Notifications&#8221; are set to Enabled – the Enable and Disable buttons are cleverly hidden at the bottom of the Features grid</li>
</ul>
<p><strong><em>Step 5. Configure IIS<br />
</em></strong></p>
<ul>
<li>On the Exchange server open up Internet Information Services Manager</li>
<li>Locate the web site containing the virtual folder named &#8220;Microsoft-Server-ActiveSync&#8221;</li>
<li>Right-click the web site in the left pane tree and select &#8220;Properties&#8221;</li>
<li>On the &#8220;Web Site&#8221; tab enter 443 in the &#8220;SSL port&#8221; – note this may cause a problem if you already have an SSL site on the server</li>
<li>On the &#8220;Directory Security&#8221; tab setup your SSL certificate – setting this up is beyond the scope of this article but very straight forward.  Google it.  <strong>Remember:</strong> if you have been following along the server will be named <strong>exchange.mydomain.com</strong> and not <strong>www.mydomain.com</strong>.  Make sure your SSL certificate has the correct name.</li>
</ul>
<p><strong><em>Step 6. Test Your Server Setup</em></strong></p>
<ul>
<li>Open a web browser and point it to <a href="https://exchange/OMA">https://exchange/OMA</a> where &#8220;exchange&#8221; is the name of your Exchange server (mine is called exchange)</li>
<li>You might get a certificate error, that will be because the server name on the certificate does not match the server name – that&#8217;s OK when connecting to the server from the inside – just continue</li>
<li>Enter your network credentials (i.e. login) in the form <strong>DOMAIN\username</strong> for the &#8220;User name&#8221; field</li>
<li>You will probably get a warning page saying the device type is not supported, just click OK</li>
<li>If you&#8217;ve got it right you will see a text version of your mailbox – if not see <strong>Troubleshooting</strong> below</li>
</ul>
<p><strong><em>Step 7. Setup your iPhone<br />
</em></strong></p>
<ul>
<li><strong>Turn Off Wi-Fi<br />
</strong></li>
<li>Tap &#8220;Settings&#8221;, &#8220;Mail, Contacts, Calendars&#8221;</li>
<li>Under &#8220;Accounts&#8221; tap &#8220;Add Account&#8230;&#8221;</li>
<li>Tap &#8220;Exchange&#8221;</li>
<li>Enter your email address, username (in the form <strong>DOMAIN\username</strong>) and password</li>
<li>Ensure SSL is on</li>
<li>Set the &#8220;Server&#8221; field to <strong>exchange.mydomain.com</strong> (substitute mydomain for whatever your domain name is, obviously)</li>
</ul>
<p>That&#8217;s it – should be up and running now.  Send yourself an email and see.</p>
<p><span style="font-size:12pt"><strong>Troubleshooting<br />
</strong></span></p>
<p>In my brief time setting this up here are the places where you might come unstuck:</p>
<ul>
<li>Router/firewall – make sure the you have 443 pointed at your exchange server</li>
<li>
<div>Exchange test failed? It did for me! – I got a bunch of errors the first time I ran the Exchange test.  To resolve them check the following:</div>
<ul>
<li>The ASP.Net version on the OMA virtual folder is set to 1.1.4322 (the Microsoft-Server-ActiveSync can stay at 2.0.50727)</li>
<li>The App Pool account (normally Network Service) has read/execute privilege on the appropriate Exchange folders (e.g. &#8220;C:\Program Files\Exchsrvr\OMA\Browse&#8221;)</li>
<li>The App Pool account has read/write privilege on BOTH ASP.Net framework versions temp folders (i.e. &#8220;C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files&#8221; and &#8220;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files&#8221; )</li>
</ul>
</li>
<li>DNS name – make sure you have allowed sufficient time for the new name &#8220;exchange&#8221; to have fully delegated. This can take 24 hrs.</li>
<li>Firewall problems – Some firewalls have an idle connection timeout that will need to be increased to at least 15 minutes (by Microsoft&#8217;s recommendations).  This means that your firewall is disconnecting you – check your documentation or, as always, Google</li>
</ul>
<p><span style="font-size:12pt"><strong>Helpful Links<br />
</strong></span></p>
<p>Some of the pages that helped me:</p>
<p><a href="http://support.microsoft.com/?kbid=905013" target="_blank">Microsoft &#8211; Enterprise firewall configuration for Exchange ActiveSync Direct Push Technology</a></p>
<p><a href="http://msexchangeteam.com/archive/2006/04/03/424028.aspx" target="_blank">Exchange Team Blog – Direct Push is just a heartbeat away</a></p>
<p><a href="http://searchexchange.techtarget.com/general/0,295582,sid43_gci1268254,00.htmlhttp:/searchexchange.techtarget.com/general/0,295582,sid43_gci1268251,00.html" target="_blank">Brian M Posey (Exchange MVP) – Microsoft Exchange Direct Push Technology</a> (seems to be broken)</p>
<p><a href="http://images.apple.com/iphone/enterprise/docs/iPhone_MS_Exchange.pdf" target="_blank">Apple&#8217;s less that complete instructions</a> (don&#8217;t worry, it&#8217;s Apple, it just works! Right?)</p>
<img src="http://feeds.feedburner.com/~r/5LimesBlog/~4/1WdBuan_c30" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.5limes.com.au/blog/index.php/microsoft-exchange-2003-direct-push-and-the-apple-iphone-3g.html/feed</wfw:commentRss>
		<slash:comments>41</slash:comments>
		<feedburner:origLink>http://www.5limes.com.au/blog/index.php/microsoft-exchange-2003-direct-push-and-the-apple-iphone-3g.html</feedburner:origLink></item>
		<item>
		<title>Microsoft Dynamics CRM 4.0 Licensing</title>
		<link>http://feedproxy.google.com/~r/5LimesBlog/~3/is6OMsLeyAY/microsoft-dynamics-crm-40-licensing.html</link>
		<comments>http://www.5limes.com.au/blog/index.php/microsoft-dynamics-crm-40-licensing.html#comments</comments>
		<pubDate>Tue, 17 Jun 2008 07:40:44 +0000</pubDate>
		<dc:creator>Richard</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Dynamics CRM]]></category>
		<category><![CDATA[Licensing]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.5limes.com.au/blog/index.php/microsoft-dynamics-crm-40-licensing-%e2%80%93-the-saga-continues.html</guid>
		<description><![CDATA[With the release of Dynamics CRM 4.0 Microsoft has significantly changed their licensing model. The following information is a summary of the new facets as we currently understand them.
Server Licenses
There are 3 flavours of Dynamics CRM 4.0 server as follows:

Workgroup Edition – This version is limited to 5 licensed users and is designed to be [...]]]></description>
			<content:encoded><![CDATA[<p>With the release of Dynamics CRM 4.0 Microsoft has significantly changed their licensing model. The following information is a summary of the new facets as we currently understand them.</p>
<h2>Server Licenses</h2>
<p>There are 3 flavours of Dynamics CRM 4.0 server as follows:</p>
<ul>
<li>Workgroup Edition – This version is limited to 5 licensed users and is designed to be installed on Small Business Server. There is no multi-tenancy (multiple organization) support in this edition.</li>
<li>Professional Edition – This version is for single organization deployments (i.e. no multi-tenancy) but has unlimited users.</li>
<li>Enterprise Edition – This version includes the multi-tenancy support as well as some features that allow Dynamics CRM to scale better in large deployments such as role-based services and multiple-server instances.</li>
</ul>
<h2>Client Access Licenses (CAL)</h2>
<p>The CAL situation has become somewhat more complicated with CRM 4.0. Not only are there the normal variations for per-Device and per-User but there are now 3 flavours of CAL:</p>
<ul>
<li>CAL – With no decoration to the name, this is the normal read-write client license required by all users of the system who wish to read and write data.</li>
<li>Limited CAL – The &#8220;limited&#8221; here is meant to imply &#8220;read-only&#8221;. Whereas in CRM 3.0 read-only users did not require a license, a &#8220;limited&#8221; CAL is now required. Note that this is in contravention to the statements in Microsoft&#8217;s own Dynamics CRM 4.0 Planning Guide which clearly states that a read-only client does not consume a CAL (don&#8217;t believe everything you read).</li>
<li>Full-use CAL – Despite the tricky name this is not what you might expect, a normal read-write license, but in fact is an upgrade to a Limited CAL for use when a read-only user needs to write as well.</li>
</ul>
<p>Careful observation will reveal that a regular CAL is the same price as a Limited CAL + a Full-User CAL, so there is no penalty for starting with a read-only license and migrating to a read-write license at a later time.</p>
<h2>External Connector Licenses</h2>
<p>Dynamics CRM 3.0 had 2 licensed elements: server and client, but Dynamics CRM 4.0 includes a new element – the external connector. An External Connector is needed when a number of users are going to connect to the CRM system to read or write data by way of another system. 5 Limes is often called upon to created SharePoint widgets and web pages that extract data from or deposit data into Dynamics CRM. In CRM 3.0 we would have used a single CAL to achieve this, but in 4.0 an External Connector license is required. At the time of writing the a read-write External Connector license is roughly 5 times the price of a single read-write CAL and the read-only External Connector is roughly 6.6 times the price of a single read-only CAL. So if you have 5 external users or fewer you are better off licensing them individually, but if you want to connect Dynamics CRM 4.0 to your web site you will need the External Connector.</p>
<h2>Server &amp; CAL Packs</h2>
<p>There is an option to buy Professional Server and 5 CALs at the same time, but there is really no difference in the price compared with buying them separately (at least there is negligible difference in the RRP).</p>
<h2>A note on Action Pack Subscriptions</h2>
<p>The version of Dynamics CRM that is made available through the Microsoft Action Pack is the Workgroup Edition. This edition is limited to 5 named users. In CRM 3.0 it was possible to purchase additional CALs when more users needed to access the system but in CRM 4.0 that is no longer possible. So if you are planning to deploy Workgroup Edition (through an Action Pack or otherwise) you should be aware that your 6<sup>th</sup> user is going to be expensive.</p>
<img src="http://feeds.feedburner.com/~r/5LimesBlog/~4/is6OMsLeyAY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.5limes.com.au/blog/index.php/microsoft-dynamics-crm-40-licensing.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.5limes.com.au/blog/index.php/microsoft-dynamics-crm-40-licensing.html</feedburner:origLink></item>
		<item>
		<title>Microsoft Dynamics CRM 3.0 Licensing</title>
		<link>http://feedproxy.google.com/~r/5LimesBlog/~3/nUrLHcfUXKI/microsoft-dynamics-crm-30-licensing.html</link>
		<comments>http://www.5limes.com.au/blog/index.php/microsoft-dynamics-crm-30-licensing.html#comments</comments>
		<pubDate>Wed, 30 Apr 2008 06:47:55 +0000</pubDate>
		<dc:creator>Richard</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Dynamics CRM]]></category>
		<category><![CDATA[Licensing]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.5limes.com.au/blog/index.php/microsoft-dynamics-crm-30-licensing.html</guid>
		<description><![CDATA[A few pieces of interesting information regarding Microsoft Dynamics licensing that we have recently discovered:

If you have licensed Dynamics CRM 3.0 as part of an Action Pack subscription it is not possible to add more than 10 active users. This is because since the release of CRM 4.0 the FPP (or full packaged product) CAL [...]]]></description>
			<content:encoded><![CDATA[<p>A few pieces of interesting information regarding Microsoft Dynamics licensing that we have recently discovered:</p>
<ul>
<li>If you have licensed Dynamics CRM 3.0 as part of an Action Pack subscription it is not possible to add more than 10 active users. This is because since the release of CRM 4.0 the FPP (or full packaged product) CAL that was required is no longer available and it is the only kind of CAL that came with a key. No key means no additional licenses.</li>
<li>If you have licensed Dynamics CRM 4.0 as part of an Action Pack subscription be warned you are only entitled to the &#8220;Workgroup&#8221; edition which has but 5 users. This cannot be extended.</li>
</ul>
<p>Interestingly since Microsoft deems the &#8220;Action Pack&#8221; to be a subscription-based license you, as the client, do not actually &#8220;own&#8221; the license and therefore are not eligible for upgrade pricing either. When you hit the 6<sup>th</sup>/10<sup>th</sup> user (depending on your version) you will be up for the CRM Server license and as many CALs as you have users, since you cannot use the Action Pack CALs on a box product or volume license. This obviously makes the transition very expensive and while you can at least continue to use your Action Pack SQL Server it seems like this group have not been well catered to in the revised licensing model.</p>
<p>By the way – Action Pack users are generally Microsoft partners – not the group I would have chosen to upset, but then they have more money than me&#8230;</p>
<p>[<span style="color: #ff0000;">UPDATE</span> - With the recently released Microsoft CRM 4.0 there is all new confusion.  <a title="Microsoft Dynamics CRM 4.0 Licensing" href="http://www.5limes.com.au/blog/index.php/microsoft-dynamics-crm-40-licensing.html">See my new post on Microsoft Dynamics CRM 4.0 Licensing </a>for more info.]</p>
<img src="http://feeds.feedburner.com/~r/5LimesBlog/~4/nUrLHcfUXKI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.5limes.com.au/blog/index.php/microsoft-dynamics-crm-30-licensing.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.5limes.com.au/blog/index.php/microsoft-dynamics-crm-30-licensing.html</feedburner:origLink></item>
		<item>
		<title>Public proxied access to SharePoint (WSS or MOSS)</title>
		<link>http://feedproxy.google.com/~r/5LimesBlog/~3/PiF4hwFwWnU/public-proxied-access-to-sharepoint-wss-or-moss.html</link>
		<comments>http://www.5limes.com.au/blog/index.php/public-proxied-access-to-sharepoint-wss-or-moss.html#comments</comments>
		<pubDate>Wed, 30 Apr 2008 06:20:34 +0000</pubDate>
		<dc:creator>Richard</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[.NET Development]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[MOSS 2007]]></category>
		<category><![CDATA[WSS 3.0]]></category>

		<guid isPermaLink="false">http://www.5limes.com.au/blog/index.php/public-proxied-access-to-sharepoint-wss-or-moss.html</guid>
		<description><![CDATA[We use Microsoft Office SharePoint 2007 internally to manage all kinds of work and share documents. It&#8217;s a very effective tool. We also use it to manage our software registration database.
To facilitate customer software registrations we have a public-facing web service that uses SharePoint APIs to communicate with our registration site. The configuration of SharePoint [...]]]></description>
			<content:encoded><![CDATA[<p>We use Microsoft Office SharePoint 2007 internally to manage all kinds of work and share documents. It&#8217;s a very effective tool. We also use it to manage our software registration database.</p>
<p>To facilitate customer software registrations we have a public-facing web service that uses SharePoint APIs to communicate with our registration site. The configuration of SharePoint required some fiddling to make this work. The problem was that we had SharePoint configured with no anonymous access, and obviously the users of our software that would be registering would not have credentials for our network – we didn&#8217;t really want to enable anonymous access so a creative solution was required.</p>
<p>In order to achieve this we used the web.config <span style="font-size: 9pt; font-family: Courier New;"><span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">identity</span><span style="color: #0000ff;"> /&gt; </span></span>element in our public-facing website to set the identity of the thread to a fixed user account created just for the task. The web service application pool is configured in IIS to run as &#8220;Network Service&#8221;. The SharePoint API seemed to pick up the user from the <span style="font-size: 10pt; font-family: Courier New;"><span style="color: #2b91af;">HttpContext</span>.Current.User</span> object, rather than from the thread which means that all our communications were failing with 401.5 errors. I was a little surprised to discover that despite the <span style="font-size: 9pt; font-family: Courier New;"><span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">identity </span><span style="color: #ff0000;">userName</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">user</span>&#8221; <span style="color: #ff0000;">password</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">pass</span>&#8221; <span style="color: #ff0000;">impersonate</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8221; <span style="color: #0000ff;">/&gt; </span></span>in the web.config file, the <span style="font-size: 9pt; font-family: Courier New;"><span style="color: #2b91af;">HttpContext</span>.Current.User</span> was still anonymous.</p>
<p>The two tricks that made it work were:</p>
<ul>
<li>
<div>In Global.asax use the <span style="font-size: 10pt; font-family: Courier New;">Application_BeginRequest()</span> method as follows:<br />
<span style="font-family: Courier New;"><span style="font-size:9pt"><span style="color: #2b91af;">HttpContext</span>.Current.User = <span style="color: #0000ff;">new </span><span style="color: #2b91af;">WindowsPrincipal</span>( <span style="color: #2b91af;">WindowsIdentity</span>.GetCurrent() );</span><span style="font-size:10pt"><br />
</span></span></div>
</li>
<li>
<div>In our code ensure that each time we made a connection to the SPWeb we called:<br />
<span style="font-size: 9pt; font-family: Courier New;">spWeb.AllowUnsafeUpdates = <span style="color: #0000ff;">true</span>;</span></div>
</li>
</ul>
<p>The Global.asax trick ensures that the context carries the same user account as the impersonated thread.</p>
<p>The AllowUnsafeUpdates is required when impersonating.</p>
<img src="http://feeds.feedburner.com/~r/5LimesBlog/~4/PiF4hwFwWnU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.5limes.com.au/blog/index.php/public-proxied-access-to-sharepoint-wss-or-moss.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.5limes.com.au/blog/index.php/public-proxied-access-to-sharepoint-wss-or-moss.html</feedburner:origLink></item>
		<item>
		<title>Forms, Controls &amp; the Forms Designer</title>
		<link>http://feedproxy.google.com/~r/5LimesBlog/~3/xtkTwKobAL4/forms-controls-the-forms-designer.html</link>
		<comments>http://www.5limes.com.au/blog/index.php/forms-controls-the-forms-designer.html#comments</comments>
		<pubDate>Mon, 14 Apr 2008 08:30:50 +0000</pubDate>
		<dc:creator>Richard</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[.NET Development]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.5limes.com.au/blog/index.php/forms-controls-the-forms-designer.html</guid>
		<description><![CDATA[I was just working on a Windows app that contains lots and lots of User Controls all of which inherit from a base User Control.
When I opened the controls they displayed blank in the designer. After some digging I realised that two vital pieces were missing:

All controls need to have a parameterless constructor, but they [...]]]></description>
			<content:encoded><![CDATA[<p>I was just working on a Windows app that contains lots and lots of User Controls all of which inherit from a base User Control.</p>
<p>When I opened the controls they displayed blank in the designer. After some digging I realised that two vital pieces were missing:</p>
<ol>
<li>All controls need to have a parameterless constructor, but they do not need to be public (mine are &#8220;protected&#8221;)</li>
<li>The default constructor needs to call InitializeComponent() as this is the method that puts controls into their positions on the form</li>
</ol>
<p>It seems the Forms Designer creates an instance of the control by calling the parameterless constructor (which seems obvious when you think about it I suppose).</p>
<p>The giveaway on the InitializeComponent() call was the comment just above the call injected by default which reads &#8220;<span style="font-size: 10pt; color: #008000; font-family: Courier New;">Required for Windows Form Designer support</span>&#8220;.</p>
<p>Anyways – hopefully this will save somebody some time.</p>
<img src="http://feeds.feedburner.com/~r/5LimesBlog/~4/xtkTwKobAL4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.5limes.com.au/blog/index.php/forms-controls-the-forms-designer.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.5limes.com.au/blog/index.php/forms-controls-the-forms-designer.html</feedburner:origLink></item>
		<item>
		<title>Flash FLV over IIS</title>
		<link>http://feedproxy.google.com/~r/5LimesBlog/~3/792_5SFg67o/flash-flv-over-iis.html</link>
		<comments>http://www.5limes.com.au/blog/index.php/flash-flv-over-iis.html#comments</comments>
		<pubDate>Wed, 04 Apr 2007 07:12:52 +0000</pubDate>
		<dc:creator>Richard</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Flash video]]></category>
		<category><![CDATA[FLV]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[MIME types]]></category>

		<guid isPermaLink="false">http://www.5limes.com.au/blogs/?p=6</guid>
		<description><![CDATA[Recently I was deploying a web site with Flash video on. The Flash SWF files and associated FLV files (these are the ones containing the video that is streamed back to the user) were all in the correct directories however the videos still would not play. Instead I simply saw a blank screen.
Windows IIS only [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I was deploying a web site with Flash video on. The Flash SWF files and associated FLV files (these are the ones containing the video that is streamed back to the user) were all in the correct directories however the videos still would not play. Instead I simply saw a blank screen.</p>
<p>Windows IIS only serves files for which a MIME type is configured. There are several levels you can configure these including for the whole server (right-click server &gt; Properties &gt; MIME types) for a particular site (right-click site &gt; Properties &gt; HTTP Headers &gt; MIME Types) or even for a folder beneath the site. You will notice that the settings are inherited, so specifying the value for the server negates the need to specify it for each site, and so on.</p>
<p>Set the MIME type as follows:</p>
<p>Extension: <strong>.flv</strong></p>
<p>MIME Type: <strong>video/x-flv </strong>(other MIME type settings may also work)</p>
<p>If you altered the MIME setting on the server you will need to restart with &#8220;iis_reset&#8221; but if you only altered the setting for a given site then simply stopping and starting that site is enough.</p>
<img src="http://feeds.feedburner.com/~r/5LimesBlog/~4/792_5SFg67o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.5limes.com.au/blog/index.php/flash-flv-over-iis.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.5limes.com.au/blog/index.php/flash-flv-over-iis.html</feedburner:origLink></item>
	</channel>
</rss>
