Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WCF Service Host Configuration - Please try changing the HTTP port to 8732

Tags:

wcf

I had a complex WCF service based solution working on my PC but due to a problem installing Windows 8.1 I had to 'Refresh' my PC. Now that I've reinstalled Visual Studio 2012 my project no longer functions correctly.

When I debug a unit test the wcfservicehost displays an error:

Please try changing the HTTP port to 8733 or running as Administrator.
System.ServiceModel.AddressAccessDeniedException: HTTP could not register URL http://+:8732/Design_Time_Addresses/MyWCFService/Name/. Your process does not have access rights to this namespace (see http://go.microsoft.com/fwlink/?LinkId=70353 for details). ---> System.Net.HttpListenerException: Access is denied

Apparently the usual solution to this is to run Visual Studio as administrator (possibly because it then overwrites something somewhere) however I'm unable to do this as I'm required to reference DLLs on a network drive and network drives cannot be accessed when you run as administrator.

I'm assuming that somewhere there is a configuration file or registry entry that determines which port Visual Studio or the WCF Service Host uses when running and that there is a leftover entry in there from my previous Windows installation.

To change the port to 8733 would require editing every service, re-referencing them and then rebuilding the solution and hoping that it works.

Is there a way to set or force the port that WCF Service Host uses?

like image 448
Carl Onager Avatar asked May 07 '14 14:05

Carl Onager


1 Answers

After a bit of digging around and research I found out that recent versions of Windows enforce security settings that prevent you from listening to any ports. I’m assuming that when Visual Studio is installed it reserves a port for it’s own use so that you can host and thus debug web services. This was the localhost:8732 port on my development machine but with reinstalling Visual studio it is now localhost:8733, unfortunately all my app.config files in the solution point to port 8732.

Run an elevated command prompt and execute netsh http show urlacl. This displays the list of reserved ports amongst which I found this:

Reserved URL            : http://+:8733/Design_Time_Addresses/
User: NT AUTHORITY\INTERACTIVE

Which, I’m assuming, is the entry added when Visual Studio was installed.

Executing the following command reserves the 8732 url/port:

netsh http add urlacl url=http://+:8732/ user=WORK\Clara

Restart Visual Studio and all of a sudden my solution works again.

like image 111
Carl Onager Avatar answered Oct 22 '22 00:10

Carl Onager