I have recently installed the Windows Azure AppFabric SDK because I’m writing an article for the Dutch .NET Magazine. Problem is I try to do everything in Visual Studio 2010 these days, just because it’s so cool to have something that’s buggy. Seriously! Sometimes you get headaches because you just can’t figure out why something’s not working, only to find out it’s because it really isn’t working because of the current beta version you’re working with. But on the other side it’s really fun and you learn a lot.
As now, when I got the following message.
Configuration binding extension 'system.serviceModel/bindings/netTcpRelayBinding' could not be found. Verify that this binding extension is properly registered in system.serviceModel/extensions/bindingExtensions and that it is spelled correctly.
It’s a System.ConfigurationErrorsException which can mean that you might be right with what you configured, the .NET runtime just can’t figure out what it is that is wrong. This time it’s because some extensions to WCF weren’t added to the machine.config of .NET 4.0 RC. It was however added to the machine.config of .NET 2.0 so I took it from there. And for future reference for my dear readers and all others that come in via Google, I’m posting the fix here.
Sidenote : I’m using 2.0.50727 and 4.0.30128 version of the .NET Framework, but the versions might differ on your machine.
Go to C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\ and read the machine.config from there. In the node configuration\system.servicemodel\extensions\ you find two nodes. The first is bindingElementExtensions and the second is bindingExtensions. You’ll see some bindings with a name that contains “relay” in it. Copy these into notepad or so.
Now open up C:\Windows\Microsoft.NET\Framework\v4.0.30128\Config\ and edit the machine.config there. Copy the lines from the 2.0 config that are missing in the 4.0 config and your AppFabric service should be able to start.
I’ve written some tutorials in the past to help people with manually updating their ClickOnce deployed applications.
- Manual check for updates with ClickOnce
- Turn off automatic updates with ClickOnce
- ClickOnce automated build and pfx file
- Creating ClickOnce deployment files using an automated build and FinalBuilder
Miscellaneous users still had problems with the updates not checking very well. Joe responded with a solution. I’m writing it down here so more people might benefit from it as well, especially since the comment didn’t contain any linebreaks! :)
As Joe mentions the methods CheckForUpdate() and CheckForDetailedUpdate() persist the information retrieved to disk. This way when performing the check for update again, the information is retrieved from disk. If you’ve chosen to skip the update, it won’t ask you again.
You can override this behavior by using an overloaded method of the above mentioned methods and specify that you don’t want the information to be persisted to disk.
ApplicationDeployment updateCheck = ApplicationDeployment.CurrentDeployment;
UpdateCheckInfo info = updateCheck.CheckForDetailedUpdate(false);
//
if (info.UpdateAvailable)
{
updateCheck.Update();
MessageBox.Show("The application has been upgraded, and will now restart.");
Application.Restart();
}
Check the second line with the method CheckForDetailedUpdate where I pass a ‘false’ to specify that it should not persist the update information.