We do! It does! :-)
Microsoft UK has launched an initiative called “Britain Works” to help students find resources to get their IT career started, technical professionals to expand their IT skills and entrepreneurs to apply Microsoft technology in making their businesses flourish.
Check out the web site for more information about the program and see the FAQ if you have questions.
For anyone not on the web or who would rather speak to someone about it, there is a helpline at 0800 111 4341.
Cheers
Doug
If you debug .NET a lot you need to know what is going on inside a .NET application.
I came across a great article about .NET Type internals that is very useful.
HTH
Doug
I previously mentioned about all the interesting stuff on Channel 9 about Windows 7.
One that I watched which I found was particularly interesting was the one about Fault Tolerant Heap.
And if you want to go “low level” you can watch this one about the dispatcher lock.
Doug
I had an interesting case a while back where a customer’s web site which used SQL Express would sometimes experience this exception:
“System.Data.SqlClient.SqlException: Cannot open database "MyDatabase" requested by the login. The login failed. Login failed for user 'NT AUTHORITY\NETWORK SERVICE' ”
But it only happened intermittently which made things all the more strange.
Even worse, in some cases the exception was causing the process to terminate because it happened on a non-request thread. The fact that the unhandled exception caused the process to terminate is well understood and expected:
Unhandled exceptions cause ASP.NET-based applications to unexpectedly quit in the .NET Framework 2.0
But the reason the exception was happening in the first place was not.
We enabled extended login logging (only do this if you feel totally comfortable with editing the registry):
Edit the registry and find the key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer\Parameters
In there, create two named value of type REG_SZ named SQLArg3 and SQLArg4. Give them the values -T4029 and -T3689 respectively (including the '-').
If you already have values SQLArg3 or SQLArg4 you will have to name them accordingly. These values specify command line arguments for the SQL instance.
After creating the registry value you will need to restart the SQL Express instance.
We then took a look at the SQL Server Express log files within the "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Log" folder.
It turned out that these login failures were occurring because the database instance had shutdown and the login attempt gave up before it had started up again.
SQL Express is designed primarily for desktop/laptop scenarios so "out of the box" database instances are configured to shut down when the last client connection is closed. (option AUTO_CLOSE is set to ON).
There is a good blog post that describes this behaviour:
http://blogs.msdn.com/sqlexpress/archive/2008/02/22/sql-express-behaviors-idle-time-resources-usage-auto-close-and-user-instances.aspx
You can change this by just executing the following query:
ALTER DATABASE MyDatabase
SET AUTO_CLOSE OFF
HTH
Doug
To help .NET developers target Window 7 features we’ve released the Windows® API Code Pack for Microsoft® .NET Framework. Looks like there is a lot of stuff in there!
HTH
Doug
This is a short post about a very strange support case I had. I should start by mentioning however that you could see the same error for other reasons, not least of which because you’ve mistyped the property or method name :-).
In this particular case the customer had a class ASP web application that used VBScript. It would work for a long period of time (like days) but then begin to experience errors like the following:
Microsoft VBScript runtime error '800a01b6'
Object doesn't support this property or method: '<method name>'
These errors would become more and more frequent and the only solution my customer had found was to restart the process hosting the script. In his case that meant an IISRESET.
After much investigation and debugging we eventually figured out that he was hitting a variant of this issue:
You receive an error message if you try to start the VBScript engine from a Microsoft C++-based program on a Windows Server 2003 Service Pack 1-based computer
The underlying issue is specific to 32-bit processes that have a >2Gb address space available to them. Therefore this can occur both on 32-bit versions of Windows booted with the /3Gb switch in BOOT.INI as well as 64-bit versions of Windows where VBScript is hosted in a 32-bit process. (This is because 32-bit processes running on 64-bit systems have a 4Gb address space by default.)
The same underlying problem is also known to cause problems for the Scriptor component of Commerce Server:
FIX: You may receive a Scriptor component error message when you add the /3GB switch to the Boot.ini file on a Windows Server 2003 SP1-based computer that is running Commerce Server 2002 or Commerce Server 2007
HTH
Doug
Still continuing my Windows 7 theme, here are a few more bits and pieces.
The first thing is an important tip if you happen to have the beta 1 of Visual Studio 2010 or .NET Framework 4.0 installed on Windows Vista and you are planning on upgrading to Windows 7 (not a clean install). If you are planning on doing this, it is really important that you uninstall Visual Studio 2010 beta 1 and .NET Framework 4.0 beta 1 first, then upgrade from Vista to Windows 7 and then reinstall the VS and .NET betas. See Scott’s blog for more information.
Windows 7 beta 1 Tips
Window 7 Walkthru series
TalkingAboutWindows.Com
HTH
Doug
Back in February I blogged about a strange case we had seen where a customer was having trouble seeing certain ASP.NET performance counters when using WMI to access them. If you start Perfmon with the /WMI switch then Perfmon uses WMI rather than the native performance counter APIs to read the data. This is the same method that is used by various system monitoring tools both from Microsoft and other companies. Therefore not being able to get this data via WMI can be a significant problem.
Well, we recently had a case where after installing a new ASP.NET hotfix that we developed for our customer they could see the counters listed but the values were showing as 0 in the case of non-instance counters and no instances were listed for instance based counters.
This caused us quite a headache and we could not reproduce the issue in-house. However in the end we did find a machine on which we reproduced the issue and did manage to figure out a workaround that worked for us and in turn for the customer. However I then stopped being able to reproduce the issue so I was not able to get to the root cause. Very frustrating.
The hotfix in question is this one which (as it happens) is for an ASP.NET performance counter related issue:
FIX: "ASP.NET Apps v2.0.50727(__Total__)\Sessions Active" performance counter shows an unreasonably high value after Microsoft .NET Framework 3.5 Service Pack 1 is installed
Now although this fix was in the area of ASP.NET performance counters the minor code change it involved should not have affected the registration of the counters in any way. And in fact the WMI classes that are involved in provided performance counter data via WMI are dynamically generated by the WMI infrastructure of the operating system and not ASP.NET itself. So we could see no way that the fix that was done should cause this issue with the counters.
Just to check if it was some kind of one off packaging issue we also tried a later fix package:
FIX: Error message when you run an ASP.NET 2.0 Web application if the global resource file name contains the culture name "zh-Hant"
But the customer found the same problem happened.
What we found worked in the end was a slight variation of the steps that I talked about in my previous blog post. Here are the new steps:
1. Open Wbemtest.exe
2. Connect to the root\cimv2 namespace.
3. Delete the Win32_PerfRawData_ASPNET_2050727_ASPNETAppsv2050727 class.
4. Winmgmt /resyncperf
5. Net stop winmgmt
6. Net start winmgmt
After doing this the counters had values and instances as expected when accessed via WMI.
HTH
Doug
Following on the Windows 7 theme of the last few posts, the big one – Windows 7 has been Released To Manufacturing! This means the coding and testing is done and now the cogs of the manufacturing machine and distribution system start whirring feverishly to get this to customers.
Doug
The other day when I blogged about pre-ordering Windows 7 and how you could win prizes by writing code that targets it, I linked to some resources of interest to developers targeting Windows 7.
Well, today I came across another four useful resources:
When will you get Windows 7 RTM?
Windows 7 White Papers
Windows 7 on Channel9
Windows 7 for developers blog
HTH
Doug
So last week I blogged about how you could pre-order Windows 7 at a good price.
Well this week I found out that you (not me or anyone else at Microsoft) can Code to the Power of Windows 7 and maybe win prizes including cash, a laptop and/or a trip to PDC09.
Good luck!
Doug
Order it today at a great price
I don’t usually make myself an advertising mouthpiece but as a canny Scot I cannot pass up telling you about a good deal when I see one. If you are based in the UK you may be interested in the chance to pre-order Windows 7 now at a very attractive price. It’s a time limited and stock limited offer and currently you can choose between Windows 7 Home Premium E and Windows 7 Professional E.
The recommended offer prices are £49.99 for Home Premium and £99.99 for Professional. But note that it is worth checking the prices offered by each retailer (hint: it really is worth checking!). Note that this gets you a full product, not just an upgrade, so you can use it to go out and build your own shiny new bare metal monster machine to install it on.
Note that with the E edition you cannot do an in place upgrade but need to install a new copy. (but it’s not always a bad thing having a nice clean copy of the OS). You also need to then install an Internet Browser of your own choosing, so make sure you have a copy at hand.
So what can I do with it once I’ve installed it I hear you ask?
Well, as a developer you’ll want to ensure your applications are compatible with it before your customers get it so you probably want to grab yourself a copy of the Microsoft Application Compatibility Toolkit 5.5.
In fact, as a developer you should really be doing that now using the release candidate (RC) which you can still download here. If you previously downloaded the beta, you will probably find it is rebooting every couple of hours and furthermore it will expire completely on 1st August. A very good reason to download the release candidate now. But hurry,the RC download program ends on 15th August.
You’ll probably also want to grab yourself a copy of the “Microsoft Windows SDK for Windows 7” as well, either as an ISO or a web based install.
A good page to book mark would be the “Develop for Windows 7” portal on MSDN.
There is also a “Windows 7 RC Training Kit for Developers”
HTH
Doug
Paul Long blogs about an interesting new diagnostic capability in Windows 7 and some enhanced functionality to the network monitor tool.