Tuesday, August 26, 2014

Installing Desktop Experience on Windows Server 2012 and Windows Server 2012 R2

If you are familiar with the capability to install "Desktop Experience" in Windows Server 2008 R2, fortunately, this feature is still available in Windows Server 2012 and Windows Server 2012 R2 as well!

Of course, Microsoft moved the original location to find and install this feature, but it is still there nevertheless.

You can read more about how to install Desktop Experience for Windows Server 2012 and Windows Server 2012 R2 here:

http://blogs.technet.com/b/rmilne/archive/2013/07/11/install-desktop-experience-on-windows-server-2012.aspx

If you are interested in installing Desktop Experience using DISM, then you can use the following command:

DISM /Online /Enable-Feature /FeatureName:DesktopExperience /All

Thursday, August 21, 2014

TF53001: The database operation was canceled by an administrator

I was recently working with TFS 2013 Update 3 and I had to undo a Pending Change for a branch I created.  After I performed an "Undo Pending Changes" operation, I suddenly started getting the following error message:


After performing several reboots of my own local machine as well as the TFS Server, the error message still did not disappear!

Well, fortunately, I found this forum posting on this error message: http://social.msdn.microsoft.com/Forums/vstudio/en-US/50bc5da9-435a-41ff-be5a-7f002ec0347c/tf53001-the-database-operation-was-canceled-by-an-administrator?forum=tfsgeneral

It stated that if I was using an installation of TFS 2013 with SQL Server 2014 (which I was), then I would have to change the database compatibility mode to SQL Server 2014.

By default, it seems that TFS 2013 configures the SQL Server Compatibility mode for its databases to SQL Server 2012.  Once I changed the compatibility mode to SQL Server 2014 and re-booted the TFS Server, this error message went away!

Hooray!!

Tuesday, August 19, 2014

Removing Temporary ASP.NET Files

 

I was recently making some radical changes to an ASP.NET Application in order to upgrade it with the latest suite of controls and in order to migrate/upgrade the functionality I was running one project with the older suite of controls while the other project was running with the newer suite of controls.

As you may know, IIS (as well as IIS Express) cache this content in the Temporary ASP.NET Files directory in order to improve performance of loading these applications.

Therefore, because there was a conflict in the caching of these files, I was not able to run and debug the application in Visual Studio.

When I then tried to consequently delete the contents in the Temporary ASP.NET Files directory, I kept on getting an “Access Denied” error message indicating that something was still locking the files thereby preventing the files from being deleted.  I stopped both IIS Express as well as the World Wide Publishing Service, but this was to no avail.

I then followed the good old credo of “whenever in doubt, reboot the machine”.  Naturally, after rebooting the machine, I was able to successfully run this PowerShell script to delete all of the Temporary ASP.NET Files:

Get-ChildItem "C:\Windows\Microsoft.NET\Framework*\v*\Temporary ASP.NET Files" -Recurse | Remove-Item -Recurse

After all of the Temporary ASP.NET Files were deleted, I was able to successfully run and debug my application within Visual Studio!

Missing features in Team Foundation Server 2013 Web Access

I was just recently installing an on-premise version of Team Foundation Server 2013 and when I went into TFS Web Access, I noticed that I could not access all of the features in Team Foundation Server 2013 (particularly Test Case Management) even though I was assigned Project Administrator privileges!

Well, after a bit of digging around, it seems that TFS 2013 introduced some new license management capabilities that were not there earlier (at least in TFS 2010).

First of all, I needed to make sure I was assigned Administrator privileges in TFS so that I could properly administer my Team Foundation Server installation: http://msdn.microsoft.com/en-us/library/bb552341.aspx

Secondly, I needed to assign "Access Levels" permission in TFS Web Access so that my developers and testers could use features such as Test Case Management: http://msdn.microsoft.com/en-us/library/jj159364.aspx

Once I had assigned "Full" Access Level permissions to all of my users, I was able to view the full set of new features available in TFS 2013!!

Wednesday, August 13, 2014

Temporary Storage in WIndows Azure VMs

If you have ever set up a virtual machine in Windows Azure, you may notice that by default, you end up with a D:\ drive on each of the VMs that is labeled "Temporary Storage".  In addition, the root of the D:\ drive comes with a file that indicates that there is a potential of Data Loss when storing files on the D:\ drive.

So why exactly is the D:\ drive considered "Temporary Storage"?  As far as I could tell, the D:\ drive was never wiped out through numerous reboots, re-starts etc.

Well, I decided to try and change the configuration of one of my Azure VMs to increase the amount of memory currently allocated on the VM and that is when I discovered the true meaning of "Temporary Storage"!



As it turns out, the D:\ drive is completely wiped out when you make a configuration change to a VM!  Therefore, everything that was on your D:\ drive is removed/deleted.

Of course, in my case, I only had been storing software installation files for configuring my VM, so the D:\ drive really was "Temporary Storage" for me anyway, but at least now you know what the D:\ drive is being used for in your Windows Azure VMs!!

Top 10 Free Tools for System Administrators

If you are a frequent reader of Redmond Magazine, you may have seen the article titled:

Top 10 Free Tools for System Administrators

All of the links in the article basically point to the Freeware Tools offered by Netwrix: https://www.netwrix.com/freeware_tools.html

The one I have personally tried is the Password Manager.  If you have an Active Directory implementation that does not implement an Exchange Server (for example, if you are using a 3rd party e-mail provider such as Google Apps for Business), then you will not have the ability to allow users to easily change their own Active Directory passwords if they expire or they get locked out of their machine.  In those instances, it is nice to have a web based Self Service Portal that allows the users to change their own Windows passwords in the event of a lockout.

However, there are a few things that I don't like about the tool and its software requirements:

  • It still requires .NET 3.5 and ASP.NET 3.5
  • It sill requires IIS 6 Compatibility Mode
  • It still uses Classic ASP
It would be nice if the freeware application was a bit modernized to use ASP.NET v. 4.5 exclusively and support IIS 7 and above natively.  Based on the copyright date of the freeware application, however, it seems that it has not been updated in the last 2 years.  Oh well, I guess that is what you get for using "Freeware".  It is not actively updated and maintained in order to try and persuade users to buy its commercial version.




Wednesday, August 6, 2014

Writing JavaScript with Regions in Visual Studio

If you have a lot of JavaScript in your web application (most modern web applications do nowadays), then you probably have at least thought once or twice about how it would be nice to have regions in JavaScript just like there are in C#.

Well, fortunately, now you can have just that!

Using the Web Essentials extension for Visual Studio, you can define JavaScript regions that you can then subsequently expand and collapse while you are working with various sections of your JavaScript code: http://vswebessentials.com/features/javascript

You simply define your JavaScript regions like so:

//#region MyJavaScript Region
 
//#endregion


That is all there is to it!!

 

With the extension installed, Visual Studio will then recognize your JavaScript blocks as regions just as the regions are recognized in C#.

You can download Web Essentials for Visual Studio from here: http://vswebessentials.com/download

Tuesday, August 5, 2014

Visual Studio 2013 with Update 3 now available!

Visual Studio 2013 with Update 3 has just been released!! You can grab it from MSDN Downloads here: http://msdn.microsoft.com/subscriptions

You can read more about what is included in Visual Studio 2013 Update 3 here:

http://www.visualstudio.com/news/2014-aug-4-vs

http://blogs.msdn.com/b/visualstudio/archive/2014/08/04/visual-studio-2013-update-3-available.aspx

http://support.microsoft.com/kb/2933779

 

Unable to connect to the Internet from within a Windows Azure Virtual Machine

I was recently setting up a set of Windows Azure Virtual Machines and wanted to set up a virtual network for my virtual machines.

Naturally, I registered a DNS Server as well as a Virtual Network for my Windows Azure Virtual Machines.  Based on guidance from various MSDN articles, I set up my DNS Server IP address as 10.0.0.4

As expected, when I created my virtual machines were assigned respective IP addresses from the DNS Server.

Unfortunately, a consequence of this was that none of my virtual machines could access the Internet in order to download and install the necessary software that was needed to configure on the machine. 

Internet searches were not very fruitful but they pointed to the root cause of the issue:

The DNS Server assigned an internal IP address as part of the virtual network configuration.  This prevented the servers from being assigned external DNS IP addresses that would allow the servers to access the Internet.

Since I have had to do this numerous times on my own virtual machines, the solution seemed relatively simple!!  Just add a public DNS Server IP Address to the list of DNS Servers in the Network Adapter configuration.

Since I frequently use Google Public DNS (https://developers.google.com/speed/public-dns/), I decided to use Google Public DNS as my secondary DNS Server.

I went into the Network Adapter settings and added the DNS Server IP Addresses as shown below:



As you can probably guess, as soon as I completed this, I was able to successfully access the Internet from within my virtual machines!!



Friday, August 1, 2014

JavaScript editing with PrimalScript

As many people may have read, Visual Studio 2013 stripped out their JavaScript navigation capabilities in their RTM release.

Fortunately, however, for many developers who work very heavily with scripting languages, there are tools such as PrimalScript by Sapien Technologies available!

PrimalScript offers support for a wide variety of scripting languages including JavaScript.  One of the very nice features that PrimalScript has had for quite some time is C# style navigation for scripting functions both in VBScript as well as in JavaScript!!

In addition, it offers Intellisense (referred to as PrimalSense) within the IDE similar to Visual Studio.  It also supports source control integration through use of the TFS MSSCCI Providers. 

So, if you work in JavaScript as well as other scripting languages such as VBScript and PowerShell, PrimalScript is definitely a worthwhile tool to keep as part of your toolbelt.  Given that installation packaging IDEs based on Windows Installer such as InstallShield and Advanced Installer still heavily rely on VBScript, JavaScript and PowerShell to perform custom actions, this makes PrimalScript all the more worthwhile and useful.

You can check out PrimalScript and give it a trial run here: http://www.sapien.com/software/primalscript