﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Living in Software Development</title>
    <description>I basically live on the computer because I'm a software developer so this is where I'm going to keep my journal. I used to write down interesting stuff on little strips of paper, the backs of receipts, napkins, Moe's bags, etc. Those inevitably get lost in the shuffle, so I opted for a more appropriate venue.</description>
    <link>http://www.serratedsoftware.net/Blog/tabid/54/BlogId/1/Default.aspx</link>
    <language>en-US</language>
    <managingEditor>kim.turok@serratedsoftware.net</managingEditor>
    <webMaster>kim@serratedsoftware.net</webMaster>
    <pubDate>Wed, 23 Jul 2008 20:32:48 GMT</pubDate>
    <lastBuildDate>Wed, 23 Jul 2008 20:32:48 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>Blog RSS Generator Version 3.2.0.29758</generator>
    <item>
      <title>Dotnetnuke ExceptionSystem.ArgumentException: Invalid File or Directory attributes value.</title>
      <description>&lt;P&gt;I got another wierd error today when I tried to upload a new module on one of my Dotnetnuke sites:&lt;/P&gt;
&lt;P&gt;ExceptionSystem.ArgumentException: Invalid File or Directory attributes value. at System.IO.File.SetAttributes(String path, FileAttributes fileAttributes) at DotNetNuke.Modules.Admin.ResourceInstaller.PaDnnInstallerBase.CreateFile(String FullFileName, Byte[] Buffer) at DotNetNuke.Modules.Admin.ResourceInstaller.PaDnnInstallerBase.CreateModuleFile(PaFile File, PaFolder Folder) at DotNetNuke.Modules.Admin.ResourceInstaller.PaDnnInstallerBase.CreateFiles(PaFolder Folder) at DotNetNuke.Modules.Admin.ResourceInstaller.PaDnnInstallerBase.Install(PaFolderCollection folders) at DotNetNuke.Modules.Admin.ResourceInstaller.PaInstaller.Install()&lt;/P&gt;
&lt;P&gt;Turns out that the system account (Network Service) did not have full permissions on the root folder of the installation. As soon as I set it correctly, this error disappeared.&lt;/P&gt;</description>
      <link>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/23/Default.aspx</link>
      <author>kim.turok@serratedsoftware.net</author>
      <comments>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/23/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.serratedsoftware.net/Default.aspx?tabid=54&amp;EntryID=23</guid>
      <pubDate>Mon, 02 Jun 2008 20:22:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.serratedsoftware.net/DesktopModules/Blog/Trackback.aspx?id=23</trackback:ping>
    </item>
    <item>
      <title>DotNetNuke Module Upload Error - ExceptionSystem.ObjectDisposedException: Cannot access a closed file.</title>
      <description>&lt;P&gt;Recently, when I tried to upload a new module to DotNetNuke, I received the following error:&lt;/P&gt;
&lt;P&gt;ExceptionSystem.ObjectDisposedException: Cannot access a closed file. at System.IO.__Error.FileNotOpen() at System.IO.FileStream.Seek(Int64 offset, SeekOrigin origin) at System.Web.HttpRawUploadedContent.TempFile.GetBytes(Int32 offset, Int32 length, Byte[] buffer, Int32 bufferOffset) at System.Web.HttpRawUploadedContent.CopyBytes(Int32 offset, Byte[] buffer, Int32 bufferOffset, Int32 length) at System.Web.HttpInputStream.Read(Byte[] buffer, Int32 offset, Int32 count) at ICSharpCode.SharpZipLib.Zip.ZipInputStream.FillBuf(Int32 size) at ICSharpCode.SharpZipLib.Zip.ZipInputStream.GetNextEntry() at DotNetNuke.Modules.Admin.ResourceInstaller.PaInstaller.ReadZipStream() at DotNetNuke.Modules.Admin.ResourceInstaller.PaInstaller.Install()&lt;/P&gt;
&lt;P&gt;To fix it, open the Web.config file and locate the line:&lt;/P&gt;
&lt;P&gt;&lt;httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="8192" /&gt;&lt;/P&gt;
&lt;P&gt;Add this attribute&lt;/P&gt;
&lt;P&gt;requestLengthDiskThreshold="8192"&lt;/P&gt;
&lt;P&gt;So it looks this:&lt;/P&gt;
&lt;P&gt;&lt;httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="8192" requestLengthDiskThreshold="8192" /&gt;&lt;/P&gt;</description>
      <link>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/22/Default.aspx</link>
      <author>kim.turok@serratedsoftware.net</author>
      <comments>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/22/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.serratedsoftware.net/Default.aspx?tabid=54&amp;EntryID=22</guid>
      <pubDate>Fri, 30 May 2008 20:00:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.serratedsoftware.net/DesktopModules/Blog/Trackback.aspx?id=22</trackback:ping>
    </item>
    <item>
      <title>Change SQL Server 2000 Port</title>
      <description>&lt;P&gt;I've had to change the port that SQL Server uses to communicate over the Internet several times now, and I'm getting tired of looking it up. Here is is for future reference:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Open SQL Server Enterprise Manager. 
&lt;LI&gt;Right-click on the server instance. 
&lt;LI&gt;ClickProperties. 
&lt;LI&gt;Click the General tab, then click the button marked "Network Configuration" to display the SQL Server Network Utility. 
&lt;LI&gt;Find TCP/IP under Enabled Protocols on the right. Highlight it and hit the Properties button. 
&lt;LI&gt;The Network Protocol Default Value Setup dialog will ask for the Default Port for SQL Server. Change this entry to make SQL Server listen on a different port. Click OK to close the dialog. 
&lt;LI&gt;Click Apply on the SQL Server Network Utility screen, then OK. 
&lt;LI&gt;The changes are saved, but they will not take effect until you stop and restart the SQL Server service. ClickOK. 
&lt;LI&gt;ClickOK to close the Properties dialog. 
&lt;LI&gt;Right-click on your server instance again, and stop the SQL Server service. 
&lt;LI&gt;Once it has stopped (sometimes it takes a little while), right-click and choose to start the SQL Server service. Restarting it will now use the new port.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;After the port is changed and the service is restarted, the correct syntax to connect is ServerNameOrAddress\InstanceName,portnumber&lt;/P&gt;</description>
      <link>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/21/Default.aspx</link>
      <author>kim.turok@serratedsoftware.net</author>
      <comments>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/21/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.serratedsoftware.net/Default.aspx?tabid=54&amp;EntryID=21</guid>
      <pubDate>Fri, 21 Dec 2007 05:34:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.serratedsoftware.net/DesktopModules/Blog/Trackback.aspx?id=21</trackback:ping>
    </item>
    <item>
      <title>Truncate SQL Server 2000 Log File</title>
      <description>&lt;P&gt;I am a jack of all trades, so I don't spend too much time on any one task. I just looked at directory where my sql server 2000 databases live and I noticed that my DB logs are huge. One log file was over a gig and a half in size for a 500 meg database. I'm putting it here for my future reference, but I hope someone else can use it, too.&lt;/P&gt;
&lt;P&gt;BACKUP LOG &lt;dbName&gt; WITH TRUNCATE_ONLY&lt;/P&gt;
&lt;P&gt;DBCC SHRINKFILE(&lt;dbName&gt;_Log, 2)&lt;/P&gt;</description>
      <link>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/20/Default.aspx</link>
      <author>kim.turok@serratedsoftware.net</author>
      <comments>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/20/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.serratedsoftware.net/Default.aspx?tabid=54&amp;EntryID=20</guid>
      <pubDate>Thu, 29 Nov 2007 04:38:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.serratedsoftware.net/DesktopModules/Blog/Trackback.aspx?id=20</trackback:ping>
    </item>
    <item>
      <title>Unspecified Error Revisited</title>
      <description>&lt;P&gt;The &lt;A href="http://www.serratedsoftware.net/Blog/tabid/54/EntryID/18/Default.aspx"&gt;Unspecified Error&lt;/A&gt; I wrote about not long ago came back on my server. I thought that reinstalling ASP.Net would fix it once and for all but I was wrong. I installed a new antivirus product called NOD32 and ran a full scan. It found a few little cyber-squatters sitting on my machine and disabled them. They were:&lt;/P&gt;
&lt;P&gt;Win32/HacDef trojan&lt;BR&gt;Win32/VB.NEI worm&lt;BR&gt;HTML/Amazofraud.N trojan&lt;/P&gt;
&lt;P&gt;Hopefully, they were the problem. I just finished reinstalling ASP.Net again, so we'll see how it goes this time around.&lt;/P&gt;</description>
      <link>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/19/Default.aspx</link>
      <author>kim.turok@serratedsoftware.net</author>
      <comments>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/19/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.serratedsoftware.net/Default.aspx?tabid=54&amp;EntryID=19</guid>
      <pubDate>Fri, 21 Sep 2007 12:19:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.serratedsoftware.net/DesktopModules/Blog/Trackback.aspx?id=19</trackback:ping>
    </item>
    <item>
      <title>When Good Code Goes Bad</title>
      <description>&lt;P&gt;I HATE it when I have tried and tested code working that just mysteriously stops working. This particular time the problem lies around OLEDB access to Excel. I was doing a simple Select * from [Sheet1$] when all the sudden I started getting this ugly, useless error:&lt;/P&gt;
&lt;P&gt;System.Data.OleDb.OleDbException: Unspecified error at System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr) at System.Data.OleDb.OleDbConnection.InitializeProvider() at System.Data.OleDb.OleDbConnection.Open() at System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState&amp; originalState) at System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) &lt;/P&gt;
&lt;P&gt;I did a lot of research and finally ended up with a solution. My server automatically downloaded and installed some security update from Microsoft that reset directory permissions. I ran aspnet_regiis.exe -i from the command prompt and the problem was resolved. Thank goodness I didn't waste any eextra time trying to figure this one out!&lt;/P&gt;</description>
      <link>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/18/Default.aspx</link>
      <author>kim.turok@serratedsoftware.net</author>
      <comments>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/18/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.serratedsoftware.net/Default.aspx?tabid=54&amp;EntryID=18</guid>
      <pubDate>Sat, 01 Sep 2007 21:27:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.serratedsoftware.net/DesktopModules/Blog/Trackback.aspx?id=18</trackback:ping>
    </item>
    <item>
      <title>DotNetNuke Rewriting URLs</title>
      <description>&lt;P&gt;I needed to rewrite the URLs for DotNetNuke for SEO purposes. Here's how to do it.&lt;/P&gt;
&lt;P&gt;1. Open the SiteURLs.config file located in the root directory. Optionally, use the Friendly URL settings interface in Host Settings.&lt;/P&gt;
&lt;P&gt;2. Figure out what you want the URL to be and how to write the URL with Querystrings. Add an entry in the SiteURLs.config file like below. Regular expressions can be used, but because I want each page to show up a particular way, I have to explicitly specify each one. Lookfor is the one you want to show up, and Sendto is the real URL with querystring.&lt;/P&gt;
&lt;P&gt;    &lt;REWRITERRULE&gt;&lt;BR&gt;     &lt;RewriterRule&gt;&lt;BR&gt;      &lt;LookFor&gt;.*/HorsebackRiding/MendesRanch.htm&lt;/LookFor&gt;&lt;BR&gt;      &lt;SendTo&gt;~/Default.aspx?tabid=78&amp;amp;Activity=378&lt;/SendTo&gt;&lt;BR&gt;    &lt;/RewriterRule&gt;    &lt;/REWRITERRULE&gt;&lt;/P&gt;
&lt;P&gt;3. Because I wanted to use the extension .htm in place of .aspx, I had to associate the .htm application extention with the aspnet_isapi.dll. To get there in IIS 6, right click the site you're working with in iis and click properties. Click Home Directory, configuration, and locate the .htm extension. Add it if necessary, because it wasn't there when I looked. Associate with the appropriate verbs - I selected the All Verbs option. Check the Script Engine box and uncheck the verify that file exists box. Click ok.&lt;/P&gt;</description>
      <link>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/17/Default.aspx</link>
      <author>kim.turok@serratedsoftware.net</author>
      <comments>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/17/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.serratedsoftware.net/Default.aspx?tabid=54&amp;EntryID=17</guid>
      <pubDate>Mon, 27 Aug 2007 00:58:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.serratedsoftware.net/DesktopModules/Blog/Trackback.aspx?id=17</trackback:ping>
    </item>
    <item>
      <title>Corrupted my DotNetNuke installation</title>
      <description>&lt;P&gt;I decided to try my custom dotnetnuke shopping cart module on a different version of DNN to see how it fared - a common practice among dotnetnuke module developers. I installed a new DNN instance and then used a template to set everything up. The version test went great, but the second I tried to add a new text module to the home page, the installation became corrupted and I couldn't recover it. After retracing my steps, I figured out that the cause was a some difference in the portal export feature. Lesson learned - only use create new portals from templates made in the same version of DNN.&lt;/P&gt;</description>
      <link>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/16/Default.aspx</link>
      <author>kim.turok@serratedsoftware.net</author>
      <comments>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/16/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.serratedsoftware.net/Default.aspx?tabid=54&amp;EntryID=16</guid>
      <pubDate>Mon, 23 Apr 2007 15:29:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.serratedsoftware.net/DesktopModules/Blog/Trackback.aspx?id=16</trackback:ping>
    </item>
    <item>
      <title>Saying Bye to a Lousy Dedicated Server Host - APlus.net</title>
      <description>&lt;P&gt;I recently experienced the proverbial straw that broke the camel's back with APlus.net, who was providing hosting for servers for one of my clients. During the account cancellation, they asked me why I was cancelling my account and I thought it would be a shame to waste a great "bitch session".&lt;/P&gt;
&lt;blockquote&gt;Last week Aplus experienced network issues that caused both dedicated servers we lease from you to become unavailable. When your network came back online, our main web server began logging DCOM errors in the event log. Your support staff tried to resolve the issue, but finally decided that the server needed to have a clean OS image installed. The email was sent Friday evening requesting my approval to perform the rebuild, and I answered Saturday morning. The OS image was completed Monday morning, costing our group another two days of unnecessary down time. On Monday I began to reinstall our application. It should have only taken me a couple of hours to reinstall, but I experienced some IIS issue that kept throwing "Service Unavailable" errors when I tried to install a stable ASP.Net application under IIS. I wasted nearly the whole day trying to troubleshoot that issue. I sent an email to support again, telling them that I had an issue with IIS throwing "Service Unavailable" errors and their response hours later was for me to describe the problem in detail. At that point, I decided that after a fresh OS image if the server did not work, there was little hope for it. Meanwhile, I formed another strategy to move all our operations to the other dedicated server and cancel the one with the IIS error. On the other server I found the same DCOM errors in its event log. This server would have to be rebuilt, too. I have a dedicated server with Serverbeach, and in utter frustration, I uploaded all my application files to that server just to make sure I wasn't missing something obvious in the installation of the application I wrote that has been running without modification for years on 4 different servers. Within minutes of having all the necessary files in place on the Serverbeach dedicated server, I had the application running. This absolutely confirms that due to some error on YOUR part, I had wasted my whole Monday troubleshooting an error I should never have had to deal with. You have caused me to waste a great deal of time. I don't have any more time to waste. I set up our application yesterday with another hosting company.&lt;/blockquote&gt;</description>
      <link>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/15/Default.aspx</link>
      <author>kim.turok@serratedsoftware.net</author>
      <comments>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/15/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.serratedsoftware.net/Default.aspx?tabid=54&amp;EntryID=15</guid>
      <pubDate>Wed, 11 Apr 2007 20:11:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.serratedsoftware.net/DesktopModules/Blog/Trackback.aspx?id=15</trackback:ping>
    </item>
    <item>
      <title>Can't Upload New Module or Skin to DotNetNuke</title>
      <description>Today I installed a new instance of DotNetNuke 3.3.5 on a new host. While setting up my new portal, I ran into a problem uploading a new module, new skin, and new container to the portal. When I uploaded the new module, instead of unpacking the module and installing it like normal, DNN just went back to the Module Definitions page. Likewise, when I tried to upload a new skin, I went back to the Skins page. Same with Containers. Turns out that I had the .Net framework set for 2.0 when it should have been 1.1. Setting the correct framework version solved the problem.</description>
      <link>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/14/Default.aspx</link>
      <author>kim.turok@serratedsoftware.net</author>
      <comments>http://www.serratedsoftware.net/Blog/tabid/54/EntryID/14/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.serratedsoftware.net/Default.aspx?tabid=54&amp;EntryID=14</guid>
      <pubDate>Sat, 07 Apr 2007 20:30:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.serratedsoftware.net/DesktopModules/Blog/Trackback.aspx?id=14</trackback:ping>
    </item>
  </channel>
</rss>