<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3111141192168843163</id><updated>2012-02-16T06:39:08.203Z</updated><category term='C#'/><category term='PHP'/><category term='MySQL'/><category term='General Programming'/><category term='IIS'/><category term='DotNetNuke'/><category term='MediaWiki'/><category term='ASP.NET'/><title type='text'>mind the gap</title><subtitle type='html'>daily development, technical issues</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jpfigueira.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3111141192168843163/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jpfigueira.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Figueira</name><uri>http://www.blogger.com/profile/13378785782357231811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_hMdOJ4TNm6A/R6-vuo7e4wI/AAAAAAAAAC0/5uTsQKFwITk/S220/20335132.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3111141192168843163.post-292111215596457839</id><published>2011-09-22T06:00:00.000+01:00</published><updated>2011-09-26T13:13:43.178+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>ASP.NET C# Eval int null</title><content type='html'>Earlier this day, I've came across this issue with &lt;b&gt;Eval&lt;/b&gt;uating nullable ints. So I have:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A Custom User Control (A);&lt;/li&gt;&lt;li&gt;A Repeater of A;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div&gt;So I was trying to do something lilke this:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;&amp;lt;asp:Repeater ID="rA" runat="server" OnItemCommand="rAHandler"&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;ItemTemplate&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tr align="center"&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;uc1:UC_A ID="UC_A" runat="server" value='&amp;lt;%#&lt;b&gt;Eval("value")&lt;/b&gt; %&amp;gt;'&amp;nbsp;&amp;nbsp;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So that when the page loads, every existing control in the repeater can be properly displayed and binded with values from the database.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The big issue here, is that &lt;b&gt;value&lt;/b&gt;&amp;nbsp;is represented as a &lt;b&gt;nullable int&lt;/b&gt;&amp;nbsp;in the database, so if the value is in fact null, the &lt;b&gt;Eval &lt;/b&gt;method throws an exception..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Best way I figured after a couple of hours trying to understand if there was something wrong with the tableadapter, was a simple method used to Pre-Evaluate the &lt;b&gt;Eval&lt;/b&gt;:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;protected int? EvalCheck(object obj)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if (object.ReferenceEquals(obj, DBNull.Value))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return null;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;else&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return (int?)obj;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And in the repeater:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;uc1:UC_A ID="UC_A" runat="server" value='&amp;lt;%#&lt;b&gt;EvalCheck(Eval("value"))&lt;/b&gt;&amp;nbsp;%&amp;gt;'&amp;nbsp;&amp;nbsp;/&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That's it! = )&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3111141192168843163-292111215596457839?l=jpfigueira.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpfigueira.blogspot.com/feeds/292111215596457839/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3111141192168843163&amp;postID=292111215596457839' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3111141192168843163/posts/default/292111215596457839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3111141192168843163/posts/default/292111215596457839'/><link rel='alternate' type='text/html' href='http://jpfigueira.blogspot.com/2011/09/aspnet-c-eval-int-null.html' title='ASP.NET C# Eval int null'/><author><name>Figueira</name><uri>http://www.blogger.com/profile/13378785782357231811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_hMdOJ4TNm6A/R6-vuo7e4wI/AAAAAAAAAC0/5uTsQKFwITk/S220/20335132.jpg'/></author><thr:total>0</thr:total><georss:featurename>R. Dona Maria da Silva 8, 2800 Almada, Portugal</georss:featurename><georss:point>38.68305589974157 -9.152501821517944</georss:point><georss:box>38.68228139974157 -9.153735821517945 38.68383039974157 -9.151267821517944</georss:box></entry><entry><id>tag:blogger.com,1999:blog-3111141192168843163.post-1787440146820196737</id><published>2009-06-26T11:59:00.004+01:00</published><updated>2009-06-26T12:03:04.993+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General Programming'/><title type='text'>Rubber Duck Method of Debugging</title><content type='html'>We called it the Rubber Duck method of debugging.  It goes like this:&lt;br /&gt;&lt;br /&gt;1) Beg, borrow, steal, buy, fabricate or otherwise obtain a rubber duck&lt;br /&gt;   (bathtub variety)&lt;br /&gt;2) Place rubber duck on desk and inform it you are just going to go over&lt;br /&gt;   some code with it, if that's all right.&lt;br /&gt;3) Explain to the duck what your code is supposed to do, and then go into&lt;br /&gt;   detail and explain things line by line&lt;br /&gt;4) At some point you will tell the duck what you are doing next and then&lt;br /&gt;   realize that that it's not in fact what you are actually doing.  The duck&lt;br /&gt;   will sit there serenely, happy in the knowledge that it has helped you&lt;br /&gt;   on your way.&lt;br /&gt;&lt;br /&gt;Works every time. Actually, if you don't have a rubber duck you could at&lt;br /&gt;a pinch ask a fellow programmer or engineer to sit in.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3111141192168843163-1787440146820196737?l=jpfigueira.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpfigueira.blogspot.com/feeds/1787440146820196737/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3111141192168843163&amp;postID=1787440146820196737' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3111141192168843163/posts/default/1787440146820196737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3111141192168843163/posts/default/1787440146820196737'/><link rel='alternate' type='text/html' href='http://jpfigueira.blogspot.com/2009/06/we-called-it-rubber-duck-method-of.html' title='Rubber Duck Method of Debugging'/><author><name>Figueira</name><uri>http://www.blogger.com/profile/13378785782357231811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_hMdOJ4TNm6A/R6-vuo7e4wI/AAAAAAAAAC0/5uTsQKFwITk/S220/20335132.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3111141192168843163.post-3514621562388439783</id><published>2008-03-17T23:17:00.003Z</published><updated>2008-03-18T00:33:50.803Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='MediaWiki'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><title type='text'>PHP + MySQL + IIS6 + MediaWiki in Windows Server 2003</title><content type='html'>Used:&lt;br /&gt;&lt;br /&gt;Windows Server 2003 Web Edition (with SP2)&lt;br /&gt;&lt;a href="http://downloads.mysql.com/archives/mysql-5.0/mysql-essential-5.0.24-win32.msi" target="_new"&gt;MySQL 5.0.24&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.php.net/get/php-5.2.5-win32-installer.msi/from/a/mirror" target="_new"&gt;PHP 5.2.5&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;&lt;br /&gt;&lt;span class="mw-headline"&gt;Install MySQL 5.0.24&lt;/span&gt;&lt;/h4&gt; &lt;p&gt;Install MySQL to the default directory using the default options:&lt;/p&gt; &lt;ol&gt;&lt;li&gt;Complete the installation by pressing "Next" all the way thru&lt;/li&gt;&lt;li&gt;Select “Detailed Configuration”&lt;/li&gt;&lt;li&gt;Choose “Developer Machine”&lt;/li&gt;&lt;li&gt;Choose “MultiFunctional Database”&lt;/li&gt;&lt;li&gt;Select path for Data, this configuration used the default location.&lt;/li&gt;&lt;li&gt;Choose “Decision Support (DSS)/OLAP&lt;/li&gt;&lt;li&gt;Enable TCP/IP Networking on 3306 and Enable Strict Mode&lt;/li&gt;&lt;li&gt;Enable standard character set&lt;/li&gt;&lt;li&gt;Install as a Windows Service and set to launch automatically, check “Include Bin Directory in Windows PATH”&lt;/li&gt;&lt;li&gt;Enter a Root Password&lt;/li&gt;&lt;li&gt;Create the setup&lt;/li&gt;&lt;li&gt;You may need to edit the Windows Firewall settings to allow for TCP port 3306 to be opened for the installation to complete.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;h4&gt;&lt;span class="mw-headline"&gt;Install PHP 5.2.5&lt;/span&gt;&lt;/h4&gt; &lt;ol&gt;&lt;li&gt;Change the install folder to &lt;b&gt;C:\PHP&lt;/b&gt;&lt;/li&gt;&lt;li&gt;Select IIS CGI from the list of WebServers&lt;/li&gt;&lt;li&gt;Expand Extensions and select “MySQL” to install, but note other extensions may be useful but can be added later. Hint: If you plan on using Active Directory authentication later on, be sure to select “LDAP”, “OpenSSL” and “MCrypt” now. If you add them later, not all necessary files are copied. You can get these files by performing a reinstall, but this will mess up your php.ini file.&lt;/li&gt;&lt;li&gt;Install all extras (PHP Manual and PEAR)&lt;/li&gt;&lt;li&gt;In explorer create folders &lt;b&gt;C:\PHP\sessiondata&lt;/b&gt; and &lt;b&gt;C:\PHP\uploadtemp&lt;/b&gt;&lt;/li&gt;&lt;li&gt;Select both folders, right click, and choose properties. On the Security tab grant user &lt;b&gt;IUSR_&lt;servername&gt;&lt;/servername&gt;&lt;/b&gt; “&lt;i&gt;Modify&lt;/i&gt;” rights to both folders&lt;/li&gt;&lt;li&gt;In Notepad open &lt;b&gt;C:\PHP\php.ini&lt;/b&gt;&lt;/li&gt;&lt;li&gt;Find the line “&lt;i&gt;;cgi.force_redirect = 1&lt;/i&gt;” and uncomment it, change the value of “&lt;i&gt;1&lt;/i&gt;” to “&lt;i&gt;0&lt;/i&gt;”&lt;/li&gt;&lt;li&gt;Find the line “&lt;i&gt;upload_tmp_dir="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\php\upload"&lt;/i&gt;” and change to “&lt;b&gt;upload_tmp_dir="C:\PHP\uploadtemp"&lt;/b&gt;”&lt;/li&gt;&lt;li&gt;Change the next line to read: “&lt;b&gt;session.save_path="C:\php\sessiondata"&lt;/b&gt;”&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;NOTE: Search PHP.INI for other instances of session.save_path and upload_tmp_dir. Comment them out, if found.&lt;/b&gt;&lt;/p&gt; &lt;ol&gt;&lt;li&gt;Save &lt;b&gt;PHP.INI&lt;/b&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Install mail&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;net_smtp&lt;/span&gt; pear modules&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;From Internet Explorer goto: &lt;a href="http://pear.php.net/go-pear" class="external free" title="http://pear.php.net/go-pear" rel="nofollow" target="_new"&gt;http://pear.php.net/go-pear&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Copy entire webpage, and paste into file: c:\php\pear\go-pear.bat&lt;/li&gt;&lt;li&gt;From Command Line, do the following:&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: left;"&gt;&lt;pre&gt;c:&lt;br /&gt;cd \php&lt;br /&gt;.\php pear\go-pear.bat&lt;br /&gt;pear install mail&lt;br /&gt;pear install net_smtp&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h4&gt;&lt;span class="mw-headline"&gt;Install MediaWiki in IIS&lt;/span&gt;&lt;/h4&gt; &lt;ol&gt;&lt;li&gt;Extract MediaWiki from its downloaded file and place the entire folder in C:\Inetpub\wwwroot\mediawiki&lt;/li&gt;&lt;li&gt;Right click on this folder. Add &lt;b&gt;IUSR_&lt;servername&gt;&lt;/servername&gt;&lt;/b&gt; to the permissions list with "&lt;i&gt;Read &amp;amp; Execute&lt;/i&gt;" permissions&lt;/li&gt;&lt;li&gt;Open IIS Manager&lt;/li&gt;&lt;li&gt;Stop the Default Website&lt;/li&gt;&lt;li&gt;Right click on “&lt;i&gt;Web Sites&lt;/i&gt;” and choose New, Website&lt;/li&gt;&lt;li&gt;Call it “&lt;b&gt;MediaWiki&lt;/b&gt;”&lt;/li&gt;&lt;li&gt;Select the path “&lt;i&gt;C:\Inetpub\wwwroot\mediawiki&lt;/i&gt;”&lt;/li&gt;&lt;li&gt;Allow the permissions &lt;i&gt;Read and Execute&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Right click on &lt;i&gt;MediaWiki&lt;/i&gt; and choose &lt;i&gt;Properties&lt;/i&gt;&lt;/li&gt;&lt;li&gt;On the &lt;i&gt;Documents&lt;/i&gt; tab add “&lt;b&gt;index.php&lt;/b&gt;” as the default content page and move to the top of the list&lt;/li&gt;&lt;li&gt;Save settings and exit IIS Manager&lt;/li&gt;&lt;li&gt;Enable write permissions on the &lt;i&gt;C:\Inetpub\wwwroot\mediawiki\config&lt;/i&gt; folder (at least during the setup process).&lt;/li&gt;&lt;li&gt;Run “&lt;i&gt;iisreset&lt;/i&gt;”&lt;/li&gt;&lt;li&gt;From ANOTHER MACHINE navigate to &lt;i&gt;&lt;a href="http:///" class="external free" title="http://" rel="nofollow"&gt;http://&lt;/a&gt;&lt;servername&gt;&lt;/servername&gt;&lt;/i&gt; Note: My machine was a virtual Windows 2000 Professional SP4 installation with the machine joined to the domain and logged on using a domain user account.&lt;/li&gt;&lt;li&gt;Configure MediaWiki as to your needs&lt;/li&gt;&lt;li&gt;Copy LocalSettings.php from &lt;i&gt;C:\Inetpub\wwwroot\mediawiki\config&lt;/i&gt; to &lt;i&gt;C:\Inetpub\wwwroot\mediawiki&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Navigate back to &lt;i&gt;&lt;a href="http:///" class="external free" title="http://" rel="nofollow"&gt;http://&lt;/a&gt;&lt;servername&gt;&lt;/servername&gt;&lt;/i&gt;&lt;/li&gt;&lt;li&gt;You are good to go…&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Troubles &amp;amp; Solutions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;&lt;span class="mw-headline"&gt;Error in my_thread_global_end(): 1 threads didn't exit&lt;/span&gt;&lt;/h4&gt; &lt;p&gt;Using PHP 5.2.3 and MYSQL 5.0.24, ran into the issue where the http page request for each wiki page would hang for about 5 seconds before closing the connection, then finally display a message at the bottom of the page "Error in my_thread_global_end(): 1 threads didn't exit".&lt;/p&gt; &lt;p&gt;The fix for this was&lt;/p&gt; &lt;ol&gt;&lt;li&gt;Download the &lt;a href="http://www.php.net/get/php-5.2.1-Win32.zip/from/a/mirror" class="external text" title="http://www.php.net/get/php-5.2.1-Win32.zip/from/a/mirror" rel="nofollow" target="_new"&gt;PHP 5.2.1 Windows binary&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Rename your c:\php\libmysql.dll to c:\php\libmysql.dll_old&lt;/li&gt;&lt;li&gt;Unzip and copy libmysql.dll from the 5.2.1 version to c:\php\libmysql.dll&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;h4&gt;&lt;span class="mw-headline"&gt;Fix Email problem when using IIS SMTP Relay / Exchange&lt;/span&gt;&lt;/h4&gt; &lt;p&gt;If you are having problems getting email notifications working and receive and error message of &lt;i&gt;Invalid Address 5.5.4&lt;/i&gt; (when using MediaWiki 1.6.5) then you can edit includes/UserMailer.php around line 45:&lt;/p&gt; &lt;p&gt;Before:&lt;/p&gt;&lt;pre&gt;class MailAddress {&lt;br /&gt;/**&lt;br /&gt;* @param mixed $address String with an email address, or a User object&lt;br /&gt;* @param string $name Human-readable name if a string address is given&lt;br /&gt;*/&lt;br /&gt;function MailAddress( $address, $name=null ) {&lt;br /&gt;     if( is_object( $address ) &amp;amp;&amp;amp; is_a( $address, 'User' ) ) {&lt;br /&gt;             $this-&gt;address = $address-&gt;getEmail();&lt;br /&gt;             $this-&gt;name = $address-&gt;getName();&lt;br /&gt;     } else {&lt;br /&gt;             $this-&gt;address = strval( $address );&lt;br /&gt;             $this-&gt;name = strval( $name );&lt;br /&gt;     }&lt;br /&gt;}&lt;/pre&gt;  &lt;p&gt;After:&lt;/p&gt;&lt;pre&gt;class MailAddress {&lt;br /&gt;/**&lt;br /&gt;* @param mixed $address String with an email address, or a User object&lt;br /&gt;* @param string $name Human-readable name if a string address is given&lt;br /&gt;*/&lt;br /&gt;function MailAddress( $address, $name=null ) {&lt;br /&gt;&lt;br /&gt;#To get round IIS SMTP Invalid Address Problem&lt;br /&gt;$this-&gt;name = "";&lt;br /&gt;     if( is_object( $address ) &amp;amp;&amp;amp; is_a( $address, 'User' ) ) {&lt;br /&gt;             $this-&gt;address = $address-&gt;getEmail();&lt;br /&gt;     } else {&lt;br /&gt;             $this-&gt;address = strval( $address );&lt;br /&gt;     }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h4 style="font-weight: normal;"&gt;&lt;a href="http://www.mediawiki.org/wiki/Manual:Installing_MediaWiki_on_Windows_Server_2003" target="_new"&gt;&lt;span class="mw-headline"&gt;acknowledgement&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3111141192168843163-3514621562388439783?l=jpfigueira.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpfigueira.blogspot.com/feeds/3514621562388439783/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3111141192168843163&amp;postID=3514621562388439783' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3111141192168843163/posts/default/3514621562388439783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3111141192168843163/posts/default/3514621562388439783'/><link rel='alternate' type='text/html' href='http://jpfigueira.blogspot.com/2008/03/php-mysql-iis6-mediawiki-in-windows.html' title='PHP + MySQL + IIS6 + MediaWiki in Windows Server 2003'/><author><name>Figueira</name><uri>http://www.blogger.com/profile/13378785782357231811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_hMdOJ4TNm6A/R6-vuo7e4wI/AAAAAAAAAC0/5uTsQKFwITk/S220/20335132.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3111141192168843163.post-4152256525181024098</id><published>2008-02-11T02:32:00.001Z</published><updated>2008-03-17T23:37:55.051Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><title type='text'>DotNetNuke Development Notes (Part I - DNN &amp; IIS)</title><content type='html'>Used:&lt;br /&gt;Windows XP Professional&lt;br /&gt;Microsoft Internet Information Services (IIS 6)&lt;br /&gt;Visual Studio 2008&lt;br /&gt;DotNetNuke 4.8.0 Source Package&lt;br /&gt;&lt;br /&gt;I. Install IIS6 (if not already installed) before installing VS2008 and any other ASP.NET stuff&lt;br /&gt;&lt;br /&gt;II. Create a a new Physical Folder, preferentialy under C:\Inetpub (e.g. C:\Inetpub\DNN), and extract the .zip (Website and Library Folders, and two solution files) into that folder.&lt;br /&gt;&lt;br /&gt;III. Create a new Virtual Folder via IIS (Control Panel -&gt; Admin Tools -&gt; IIS Manager) providing the path to the previously created physical folder, \Website (e.g. C:\Inetpub\DNN\Website) with at least Read, Run scripts and Execute permissions. After that, in Website properties, make sure the Web Site's ASP.NET version is 2.0.50727&lt;br /&gt;&lt;br /&gt;IV. Rename release.config to web.config&lt;br /&gt;&lt;br /&gt;V. In a web browser (IE or Firefox) go to http://localhost/&lt;folder created="" in="" step="" iii=""&gt;&lt;directory&gt;Website (e.g. http://localhost/DNN/)&lt;br /&gt;&lt;br /&gt;VI. Select the automatic install option, the website will be installed.&lt;br /&gt;&lt;/directory&gt;&lt;/folder&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3111141192168843163-4152256525181024098?l=jpfigueira.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpfigueira.blogspot.com/feeds/4152256525181024098/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3111141192168843163&amp;postID=4152256525181024098' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3111141192168843163/posts/default/4152256525181024098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3111141192168843163/posts/default/4152256525181024098'/><link rel='alternate' type='text/html' href='http://jpfigueira.blogspot.com/2008/02/dotnetnuke-development-notes-part-i-dnn.html' title='DotNetNuke Development Notes (Part I - DNN &amp; IIS)'/><author><name>Figueira</name><uri>http://www.blogger.com/profile/13378785782357231811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_hMdOJ4TNm6A/R6-vuo7e4wI/AAAAAAAAAC0/5uTsQKFwITk/S220/20335132.jpg'/></author><thr:total>0</thr:total></entry></feed>
