Package Errors

Errors when loading my .dtsx file?
 
I have been generating an ETL process recently within Visual Studio that required the Connection Manager to store a link to a SQL Server database located on  remote machine. The security setup for this database meant that I was accessing it using the SQL Server security (username / password). My problem occured each time I loaded my solution into Visual Studio as I would get the following error message;
 
Error 1 Error loading Dimensions.dtsx: Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available.    
As well as the error message my Data Flow Task items wouldall appear with the yellow warning icon in the bottom right corner indicating that there is a problem with the task item. Fortunately I was able to find a KB article on this one to help resolve my problem – http://support.microsoft.com/kb/918760  – I chose Method 3 and now each time I open my solution file I just have to provide my password and the dtsx file opens without any errors.
 
To get rid of the warning icons in your Data Flow Tasks, on the Control Flow tab, you can either edit the existing Data Flow task or just disable and then enable it again. Providing there aren’t any other errors in your Control Flow item the warning icon will disappear.

Which pool do I dive into?

How do I find which process my App Pool belongs to?
 
When you are running multiple sites within IIS using different application pools its not always easy to identify which application ppol belongs to which w3wp.exe process. In IIS 6.0 under Windows 2003 there is a useful little script provided as part of the IIS installation. The script is already placed in systemrootsystem32 on Windows Server 2003 so simply go to your Command Prompt and type in iisapp.vbs (the .vbs is optional) and you’ll have an instant list of all the App Pool information you’ve always wanted to know.  You may need to type cscript iisapp.vbs instead if CScript isn’t your default WSH script host.

Express yourself clearly

Useful little tool for Regular Expressions
 
If you are like me and cannot remember the correct syntaxt for every every single Regular Expression I have come across a useful little tool to give you a hand. The Regular Expression Designer from Rad Software http://www.radsoftware.com.au/regexdesigner/ is very easy to use and best of all its free! Now you can debug your Regular Expressions without even stepping into your code.

Where has my YouTube gone?

Flash Plugin not being recognised for some websites
 
When the time comes to update your Flash plugin and yours suddenly stops working you might want to take a quick look at http://www.jasondunn.com/vista-flash-problem-youtube-250 . I had updated my plugin to 9,0,124,0 and got confirmation that everything installed OK, however after doing a bit of surfing it quickly became apparent that this was not the case. I followed the guidance provided by Jason and the plugin is functioning normally again.

Mutually exclusive development errors

The old ‘Mutex could not be created’ error
 
I have been doing some development in a new Visual Studio 2008 environment and was trying to debug my web service that I had created. As this was a new environment some of the security settings needed to be configured to allow me to run in DEBUG mode. After settings these permissons and starting my web service again I was still getting debug errors so I browsed the ASMX file from within IIS and got a ‘Mutex could not be created’ error within IE.
 
As with most of these errors I am not the first person to encounter the problem but I thought it was worth mentioning that this solution worked for me;
  • Close down all open Visual Studio IDE’s
  • Go to the ASP.NET Temporary folder for the version of the framework under which your application pool is running. For my web service running as a ASP.NET 2.0 application this is located at <%systemroot%>Microsoft.NetFrameworkv2.0.50727Temporary ASP.NET Files.
  • Delete the folder for your application.
  • Reset IIS
  • Check that you can now browse to your page, or web service, using IE.
  • Then reopen your solution within the development environment.

Problem solved! No more Mutex errors and I could debug my web service in my development enviroment. If you are interested, there is a useful Wikipedia article on Mutual Exclusion.

 
 

Vista still causing a few problems

The TMM Scheduled Task and Screen Refreshing on Vista
 
I have had a problem with my Vista Ultimate laptop when I have been using an external monitor which has been a pain for a while. Basically, when I unlocked my machine whilst it was connected to an external monitor, Vista would set the refresh rate of my external monitor to a value higher than the monitor was able to display. Consequently I would end up with a blank screen on my external monitor.
 
The simple fix has been to open the Display Settings (desk.cpl), choose my external monitor and then change the refresh rate back to a more sensible value. I can’t remember when this problem started with my desktop monitor but it was one of those things that, although anoying, I just put up with. Today I decided enough was enough and began the quest for a more definitive solution.
 
To cut a long story shorter, this seems to be working for me so far… http://www.revfry.com/2008/03/24/vista-and-screen-refreshing-at-unlock/. Thanks Rev. Smile

I have persmission to do this…trust me!

Prompted for cedentials when accessing SharePoint library documents
 
At our office we have a number of MOSS 2007 document libraries. One of the issues I found with Vista is that it would constantly display the prompt for my credentials when I was trying to view any of these documents. I had already configured my Security Zones settings so that access to the document library was done through the Local Intranet zone including setting the automatic logon. Other people in the office using Windows XP were not experiencing the same issue.
 
After a few minutes surfing I came accross this Knowledge Base article that resolved my problem – http://support.microsoft.com/kb/943280 . The article explains the reasons for the problem so I won’t repeat it here however there are a couple of points worth highlighting;
  • If you have already installed Windows Vista SP1, which I did, then you do not need to download the hotfix, just apply the changes to the registry.
  • Once I had made the change to your registry I needed to reboot my machine in order for the change to be affective.

Needless to say, my issue was resolved and I am no longer getting prompted to provide my credentials when I access documents stored in our SharePoint document libraries.

Locale differences within WSS 2.0

‘The language is not supported on the server’ and SharePoint development.
 
I have recently been developing a C# Console Application to automate the upload process of existing documents from a folder structure into WSS 2.0. My development and testing had been going well especially considering this was my first taste of developing against SharePoint. When I ran my application on a test server the documents, and the relevant folder structures were created and uploaded successfully. The problems started to occur when I ran the application on the client’s server.
 
The application would not even create the initial site required to store the Shared Documents and just returned an error – The language is not supported on the server. Having been burned by so called ‘language’ issues before I first checked the Regional Settings for the server and they were identical to my test machine. Plan B – surf the net for a fellow techie who had encountered the same problem and solution. Although this error was well documented on the net it was more to do with the installation of SharePoint rather than developing against it. However, it did lead me down the righ path, namely then InstalledLanguages registry entry.
 
I tweaked my console application to display the list of sites within a SharePoint web and the associated Locale ID and it highlighted the reason for my error. On my test server the sites were configured with a Locale ID of 1033 (English – United States) but on the live server they were configured to use 3081 (English – Australia). The question was, how can I convince SharePoint to use the locale id of 3081.
 
The answer comes in two parts;
  1. first of all I updated the registry on the live server. The key HKEY_LOCAL_MACHINESOFTWAREMicrosoftShared ToolsWeb Server Extensions6.0InstalledLanguages already had a REG_SZ value for 1033 so I added a second one for 3081.
  2. The next task was to create the relevant folders in the SharePoint virtual directory for the site templates. To do this I made the following changes;
    • Make a copy of the C:Program FilesCommon FilesMicrosoft Sharedweb server extensions60TEMPLATE1033 folder including all its contents and rename it to 3081.
    • Make a copy of the C:Program FilesCommon FilesMicrosoft Sharedweb server extensions60TEMPLATEADMIN1033 folder including all it contents and rename it to 3081.
    • Make a copy of the C:Program FilesCommon FilesMicrosoft Sharedweb server extensions60TEMPLATELAYOUTS1033 folder including all of its contents and rename it to 3081.
  3. Restart IIS.

This now provides SharePoint with the template structure it needs to create new sites using the Locale ID of 3081. When I ran my Console Application this time the sites were created successfully and my Shared Documents folders now contained the uploaded files.

The request failed with HTTP status 403: Forbidden.

The request failed with HTTP status 403: Forbidden.
Following an unsuccessful Windows Update to a client’s server (not performed by me I hasten to add Smile) I started to get these 403 errors when trying to access the Report Server via the web client. The Micsoroft CRM application that was also sitting on the server and utilising the Report Server was also displaying errors when I tried to view the reports that are included in the system.
 
After doing some Googl-ing I found someone else who had encountered a similar problem and the following solution also worked for me;
  • Within IIS on the server hosting your Reporting Services website, right click the ReportServer virtual directory and select Properties…
  • On the Virtual Directory tab select the Configuration… button
  • On the Mappings tab of the Application Configuration dialog take a look at the box containing Wildcard application maps (order of implementation).
  • Mine was missing the c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll entry. I also compared this setting against a similar server which had a working Report Server.
  • I add the c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll entry to the list and then restarted IIS.

Thankfully, this was a successful solution and my access to the Report Server was restored. My reports view in Microsoft CRM had not quite been resolved because I was being shown a different error – Reports.config has invalid schema, and could not be loaded. This issue is discussed in this blog entry.

Error trying to view reports in Microsoft CRM 3.0

Reports.config has invalid schema, and could not be loaded.
 
It seems that a client’s server that had recently had an update applied to it (by someone else Smile) had caused some of the configuration settings to be changed on my Microsoft CRM website. Although my CRM system was operational there were two significant issues that required investigation;
  • Warning notifications were appearing in the application event log of the server for the Microsoft CRM web application. For some reason it was throwing unhandled exception errors for an event source of ASP.NET 2.0.50727.0 – this was my first clue to the problem.
  • When I tried to view the reports available within Microsoft CRM through the browser I was presented with an error dialog containing Reports.config has invalid schema, and could not be loaded.

After some research and comparison to my test server it soon became obvious that my CRM website had changed its ASP.NET settings from 1.1.4322 to 2.0.50727.0. To restore it to its original settings I ran the following commands from the command line;

  1. C:WINDOWSMicrosoft.NETFrameworkv2.0.50727aspnet_regiis -k w3svc/5/root
  2. C:WINDOWSMicrosoft.NETFrameworkv1.1.4322aspnet_regiis -s w3svc/5/root
  3. Perform an IIS reset.

The first command line removes the script maps to all versions of ASP.NET from all ASP.NET applications at the specified application root path and its subdirectories. The second command installs the script maps pointing to the ASP.NET ISAPI version, in this case v.1.1.4322, at the specified application path root and its subdirectories.

This solution stopped my unhandled exceptions from being generated in the event log and allowed me to view my reports within CRM again.

A couple of FYI’s for this process;