Thursday, July 19, 2012

An nVidia Beta Driver Saved the Day

I have a Samsung NP-RF711 notebook computer. It has an nVidia GeForce GT 540M video card, in addition to its integrated Intel HD Graphics 3000. It has been working OK running Windows 7 64 bit with SP1 for about a year, until my son updated its nVidia video driver to version 301.42.

First he noticed that some of the 3D images in his game were distorted. Then I noticed that the computer was getting BSOD (the blue screen of death) while refreshing Windows Experience Index.

I removed the version 301.42 nVidia driver. Then I tried all other WHQL certified versions of nVidia drivers available from the nVidia website. I also tried the older version from the Samsung website. None worked.

I so turned off the nVidia adaptor in Windows Device Manager, and set the machine to use the Intel adaptor and CPU exclusively from the nVidia Control Panel, thinking that this card was dead.

This morning, I thought to myself: why not try the latest Beta driver, since it cannot really make anything worse? So I installed the version 304.79 beta driver from nVidia:

http://www.geforce.com/drivers/beta-legacy
To my surprise, it fixed the problem.

Update: Apparently the video card is having hardware problems: even though the computer no longer "blue screens" while running refreshing Windows Experience Index, there are still artifacts on the screen while running 3D games. 

Saturday, July 7, 2012

Exchange Server 2010 Autodiscover Activation Exception

My Exchange Server 2010 installation kept generating errors in the event log that looked like this:

Exception: System.ServiceModel.ServiceActivationException: The service '/Autodiscover/autodiscover.xml' cannot be activated due to an exception during compilation. The exception message is: This collection already contains an address with scheme http. There can be at most one address per scheme in this collection.

Indeed in my IIS installation I have multiple websites that share the same port number. In fact, the default website that hosts the auto discover service supports several different domain names in its header.

After a little googling around, I found a solution here:

http://stackoverflow.com/questions/561823/wcf-error-this-collection-already-contains-an-address-with-scheme-http

Essentially what I needed to do was to open up the "web.config" file in "C:\Program Files\Microsoft\Exchange Server\V14\ClientAccess\Autodiscover", and add the following lines in the
"system.serviceMode/serviceHostingEnvironment" section:

<baseaddressprefixfilters>
<add prefix="http://programount.com"></add> </baseaddressprefixfilters>

There were similiar errors for some other Exchange 2010 services, and the same fix worked for those as well.

Trouble with NAT in Windows 2008 R2 RRAS

IP address and port forwarding in the Network Address Translation (NAT) feature of Windows 2008 R2 Server's Remote and Routing Access Service (RRAS) is surprisingly difficult to setup. Unlike previous versions of Windows Servers that I used before, the graphical user interface for NAT is simply broken in this version.

With previous versions of Windows Servers, I could right click on the public interface under NAT, select "Properties" from the popup menu, go to the "Services and Ports" tab, and then specify how I wanted certain ports to be forwarded to another machine on the LAN. With Windows 2008 R2, however, the settings in on this tab do not seem to work. In fact, other than forwarding to local loop back address of 127.0.0.1, turning on anything here will only break things. Outgoing internet connection sharing works, but incoming port forwarding settings through this GUI are completely useless.
Do not select anything here
It turns out that you now need to use a command line tool to do this. The mappings cannot seem to be named, but at least you can get port/address forwarding to work ( http://www.rickwargo.com /2011/01/08/ port-forwarding-port-mapping-on-windows-server-2008-r2/). The command is

netsh interface portproxy add v4tov4 listenport=<public port>  listenaddress=<public address> connectport=<private port> connectaddress=<private address>

This "netsh" command actually does many other things. There is just no GUI for it. For example, you can run the following command to see what port forwarding settings are in place:

netsh interface portproxy show v4tov4 

When deleting a particular port from the forwarding list, you need to specify both the port number and the address on the command line:

netsh interface portproxy delete v4tov4 listenport=<public port>  listenaddress=<public address>

We came to Windows from DOS, now apparently we are moving backwards.