I have seen a couple of failures in IIS 7 on Vista when running a virtual directory on Framework 1.1 under the Default Website, when the default site is on Framework 2.0.
The most recent failure occured after upgrading the source for the virtual directory. Yesterday the same site worked fine, after today's upgrade the mappings for Framework 1.1 were lost. Did not delete the directory, just an in-place upgrade of a few ASPX files.
Restored the 1.1 mappings by running aspnet_regiis from the 1.1 directory. To be safe I put the default directory on 1.1 as well.
Maybe this is documented somewhere? I have not run into anything mentioning this yet, but in hindsight it seems prudent to have both on 1.1.
Wednesday, October 22, 2008
Monday, October 20, 2008
Visual Studio 2008 - what's in what version
At this point in time Microsoft has contradictory information posted about what features are included in the Standard versus Professional editions of Visual Studio 2008. The main page says one thing, and the downloadable 35 page PDF comparison of features says another.
The 35 page comparison where 98% of the items agree is virtually useless. Is MSFT trying to bury us in useless info so we just throw up our hands and buy the more expensive edition? Certainly looks like it.
Two things I could not clarify: are the menus redacted in Standard? Are you limited to a single (ClickOnce) deployment method in Standard?
The template for web unit testing is NOT included in Pro, for that you need Test Edition.
The 35 page comparison where 98% of the items agree is virtually useless. Is MSFT trying to bury us in useless info so we just throw up our hands and buy the more expensive edition? Certainly looks like it.
Two things I could not clarify: are the menus redacted in Standard? Are you limited to a single (ClickOnce) deployment method in Standard?
The template for web unit testing is NOT included in Pro, for that you need Test Edition.
Friday, October 17, 2008
Windows service recovery - enable actions for stops with errors checkbox
I'm baffled by the meaning of the check-box on the windows service recovery tab with the text "Enable actions for stops with errors"
The only Microsoft documentation I can find on it says "Select Enable actions for stops with errors in order to trigger the recovery actions that the service stopped with an error". What a great example of Ambiguish, a sub-type of English
The requirement is to have the service restart every time. A nightly anti-virus scan seems to be conflicting with the service occasionally, perhaps while accessing the DB or the logfile. Given the recurring but temporary nature of this conflict we need to be sure there's nothing blocking the service from restarting.
I ran some tests where I blocked access to the log file to trigger service failure. Bottom line, the service recovers the same whether or not the checkbox is selected. Maybe I need to reboot the PC to see the effects? At this point I'm just happy to confirm that the service restarts as many times as needed, and will move on.
The only Microsoft documentation I can find on it says "Select Enable actions for stops with errors in order to trigger the recovery actions that the service stopped with an error". What a great example of Ambiguish, a sub-type of English
The requirement is to have the service restart every time. A nightly anti-virus scan seems to be conflicting with the service occasionally, perhaps while accessing the DB or the logfile. Given the recurring but temporary nature of this conflict we need to be sure there's nothing blocking the service from restarting.
I ran some tests where I blocked access to the log file to trigger service failure. Bottom line, the service recovers the same whether or not the checkbox is selected. Maybe I need to reboot the PC to see the effects? At this point I'm just happy to confirm that the service restarts as many times as needed, and will move on.
Configuration Manager: the specified device instance handle does not correspond to a present device
Working with a service created in Visual Studio 2008 I started getting this cryptic error message. Can't recall exactly when it first appeared but it was probably after manual edits to the registry to add a dependency or to recreate the service. No loss of functionality so I put off fixing it for a couple days.
The solution is very simple, in the registry delete the "Enum" subkey for the service, then close and re-open the services console and the message should be gone.
The solution is very simple, in the registry delete the "Enum" subkey for the service, then close and re-open the services console and the message should be gone.
Saturday, October 11, 2008
Visual Studio 2008 setup project says it requires .NET Framework 3.5
Just did my first setup project on visual studio 2008 from scratch rather than upgrade. The msi on the target machine said "this setup requires the .NET Framework version 3.5", even though the solution targets 2.0 exclusively.
Solved by right-clicking on the setup project, View, Launch Conditions. Then edit the properties of the Requirements on Target Machine=>Launch Conditions=>.NET Framework node. Default is 3.5
Upgraded setup projects defaulted to 2.0 after I selected that as the default general behavior for upgrading projects targeting 1.1
Solved by right-clicking on the setup project, View, Launch Conditions. Then edit the properties of the Requirements on Target Machine=>Launch Conditions=>.NET Framework node. Default is 3.5
Upgraded setup projects defaulted to 2.0 after I selected that as the default general behavior for upgrading projects targeting 1.1
Tuesday, September 30, 2008
Cut and paste is disabled in Remote Desktop session
A quick reminder of the counter-intuitive setting to enable cut and paste functionality on a remote PC during a Remote Desktop Connection sessions.
Open the RDC window to start a connection. Before connecting, cick on Options, select Local Resources tab, and DE-select the "clipboard" checkbox under the heading "select resources you want to use in your remote session".

Now you will be able to use normal cut/paste functionality on the remote PC.
Open the RDC window to start a connection. Before connecting, cick on Options, select Local Resources tab, and DE-select the "clipboard" checkbox under the heading "select resources you want to use in your remote session".

Now you will be able to use normal cut/paste functionality on the remote PC.
Thursday, September 25, 2008
Timer on a new thread attached to a windows service disappears after 10 minutes
I created a visual basic windows service application in Visual Studio 2005 which needed a timer to fire every 10 seconds. I found an example showing how to attach a timer in a new thread to the service which worked fine during development.
Then I installed on a test system and the timer would fire for 10 minutes and then disappear and the service would stop working. Stopping consistently at ten minutes was a clue.
There was no succinct explanation, but Garbage Collection came up in reference to unattended threads. The timer on a new thread was eligible for GC if it was not referenced periodically. The solution was simple, make the timer handle a global variable, and referencing the handle each time the timer handler invokes.
Public Class My_Scheduler_Service
Dim tDelegate As Threading.TimerCallback
Dim oTimer As System.Threading.Timer
Protected Overrides Sub OnStart(ByVal args() As String)
.....
tDelegate = AddressOf TimerFireEvent ' my timer handler
oTimer = New System.Threading.Timer(tDelegate, Me, 0, iTIME_INTERVAL)
end sub
Public Sub TimerFireEvent(ByVal sender As Object)
Try
'reference timer to avoid Garbage Collection
If (oTimer Is Nothing) Then
System.IO.File.AppendAllText("C:\Log.txt", Now.ToString() & ": oTimer = nothing" & vbCrLf)
Else
System.IO.File.AppendAllText("C:\Log.txt", Now.ToString() & ": oTimer OK" & vbCrLf)
End If
...
Posting this because Garbage collection impact on a new timer thread was not something I saw clearly in documentation or examples.
Then I installed on a test system and the timer would fire for 10 minutes and then disappear and the service would stop working. Stopping consistently at ten minutes was a clue.
There was no succinct explanation, but Garbage Collection came up in reference to unattended threads. The timer on a new thread was eligible for GC if it was not referenced periodically. The solution was simple, make the timer handle a global variable, and referencing the handle each time the timer handler invokes.
Public Class My_Scheduler_Service
Dim tDelegate As Threading.TimerCallback
Dim oTimer As System.Threading.Timer
Protected Overrides Sub OnStart(ByVal args() As String)
.....
tDelegate = AddressOf TimerFireEvent ' my timer handler
oTimer = New System.Threading.Timer(tDelegate, Me, 0, iTIME_INTERVAL)
end sub
Public Sub TimerFireEvent(ByVal sender As Object)
Try
'reference timer to avoid Garbage Collection
If (oTimer Is Nothing) Then
System.IO.File.AppendAllText("C:\Log.txt", Now.ToString() & ": oTimer = nothing" & vbCrLf)
Else
System.IO.File.AppendAllText("C:\Log.txt", Now.ToString() & ": oTimer OK" & vbCrLf)
End If
...
Posting this because Garbage collection impact on a new timer thread was not something I saw clearly in documentation or examples.
Subscribe to:
Posts (Atom)