views:

374

answers:

3

I have a VS 2008 solution that includes a web site and a web service. I'm developing both at once, and it's helpful to be able to debug from one into the other.

It occasionally can't find the web service. If I look in the web.config, I find the port number it's looking at is not the port number it auto-runs the service in when I use the debugger. For example, the web.config reference says something like:

add key="mynamespace.mywebservice" value="http://localhost:55765/mywebservice.asmx"

When I hover over the Cassini port icon, I find that the web service is running in port 55382 (or some other non-55765 port). No wonder it can't find it.

Is there a way to enforce that the port number it runs under is the one specified in the web config? And if it's not using the web config port number to figure out where to run it... where does it decide? I know in VS2005, there was a way to specify the port number to use when debugging, but I can't find that anywhere in the web service project in VS 2008.

This is really going to cause problems as more developers come on to this project - how can I fix it? Deleting and re-adding the web services to the project fixes it, but I'd literally have to do it a couple times a day, not an ideal solution.

A: 

In VS2008 Solution Explorer: Right click your web project, choose Properties. On the left side, click "Web" and you'll see the port options under Servers.

JustLoren
Yes, that's what worked in VS2005. I have no "web" option under the web service in VS 2008.
BDW
I just added a Web Service application to my solution, and I have the "Web" option. Not sure why you don't have it.
JustLoren
+1  A: 

from here

By default, Cassini assigns a random port number to each website it hosts. This port number gets assigned the first time you start the site using the Visual Studio debugger, and then gets persisted for the life of the solution.

You can disable this behavior by selecting the project node for your Web Project in Solution Explorer and choosing View->Properties Window (Ctrl-W, P). Change “Use Dynamic Ports” to False and then specify a TCP port of your liking (best to keep this between 1000–5000, but it can technically be any unused TCP port).

This will give your Cassini-hosted site a deterministic port number, and make it easier to write Indigo clients that use services hosted on that site.

Preet Sangha
A: 

I stumbled across this today when I was lookign for a solution... As stated above you can open the solution with notepad. Look for the line:

VWDPort = "55071"

and change the port number to what you would like. Save the file. If you have the solution open you should be prompted to reload. If not restart VS and you should be good to go. I don't know if there is an option in VS, but this was an easy hack for me.

sgmeyer