2009-08-24 47 views
1

我有一个VS 2008的解决方案,其中包括一个网站和一个Web服务。我正在同时开发,并且能够从一个调试到另一个是有帮助的。VS 2008调试器:它是如何决定Cassini端口运行Web服务的?

它偶尔无法找到网络服务。如果我查看web.config,我发现它所查看的端口号不是它在使用调试器时自动运行服务的端口号。例如,在web.config参考说是这样的:

添加键= “mynamespace.mywebservice” 值= “HTTP://本地主机:55765/mywebservice.asmx”

当我将鼠标悬停在卡西尼号口图标,我发现Web服务正在端口55382(或其他一些非55765端口)中运行。难怪它找不到它。

有没有办法强制它运行的端口号是在Web配置中指定的端口号?如果它不使用网络配置端口号来确定它在哪里运行,它在哪里决定?我知道在VS2005中,有一种方法可以指定调试时使用的端口号,但在VS 2008的Web服务项目中找不到任何地方。来这个项目 - 我该如何解决它?删除Web服务并重新添加到项目中可以修复它,但我实际上必须每天执行几次,而不是理想的解决方案。

回答

1

我今天在寻找解决方案时偶然发现了这个问题......如上所述,您可以用记事本打开解决方案。寻找线路:

VWDPort = "55071" 

并将端口号更改为您需要的值。保存文件。如果您打开解决方案,应该提示您重新加载。如果不重新启动VS,你应该很好走。我不知道在VS中是否有选项,但对我来说这是一件容易的事。

0

在VS2008解决方案资源管理器中:右键单击您的Web项目,选择“属性”。在左侧,点击“Web”,你会看到服务器下的端口选项。

+0

是的,这就是在VS2005中的工作。我在VS 2008的Web服务下没有“web”选项。 – BDW 2009-08-24 13:28:07

+0

我刚刚在我的解决方案中添加了一个Web服务应用程序,并且我有“Web”选项。不知道为什么你没有它。 – JustLoren 2009-08-24 14:21:50

3

here

默认情况下,卡西尼分配随机 端口号它承载每一个网站。 第一次使用Visual Studio调试器的 启动站点时,此端口号得到分配 ,然后在 解决方案的生命周期中持续存在 。

您可以通过 禁用此行为选择的项目节点在解决方案资源管理器 Web项目, 选择查看 - >属性窗口 (按Ctrl-W,P)。将“使用动态 端口”更改为False,然后指定您喜欢的TCP 端口(最好将此 保持在1000-5000之间,但在技术上它可以是任何未使用的TCP端口)。

这将给你的卡西尼 - 托管 网站确定性的端口号, 使其更易于编写使用托管在该网站的服务靛蓝客户 。

相关问题