1

我有一个 VS 2008 解决方案,其中包括一个网站和一个 Web 服务。我正在同时开发两者,能够从一个调试到另一个是有帮助的。

它有时无法找到 Web 服务。如果我查看 web.config,我发现它正在查看的端口号不是我使用调试器时自动运行服务的端口号。例如,web.config 参考说明如下:

添加键="mynamespace.mywebservice" 值="http://localhost:55765/mywebservice.asmx"

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

有没有办法强制它运行的端口号是 web 配置中指定的端口号?如果它不使用网络配置端口号来确定在哪里运行它......它在哪里决定?我知道在 VS2005 中,有一种方法可以指定调试时使用的端口号,但是我在 VS 2008 的 Web 服务项目中的任何地方都找不到。

随着越来越多的开发人员加入这个项目,这真的会引起问题——我该如何解决?删除 Web 服务并将其重新添加到项目中可以修复它,但我实际上必须每天执行几次,这不是一个理想的解决方案。

4

3 回答 3

3

这里

默认情况下,Cassini 会为其托管的每个网站分配一个随机端口号。此端口号在您首次使用 Visual Studio 调试器启动站点时分配,然后在解决方案的整个生命周期内保持不变。

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

这将为您的 Cassini 托管站点提供一个确定的端口号,并使编写使用该站点上托管的服务的 Indigo 客户端变得更加容易。

于 2009-08-24T13:26:53.737 回答
1

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

VWDPort = "55071"

并将端口号更改为您想要的。保存文件。如果您打开了解决方案,系统会提示您重新加载。如果不重新启动VS,你应该很高兴。我不知道 VS 中是否有选项,但这对我来说很容易破解。

于 2010-08-30T14:33:07.943 回答
0

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

于 2009-08-24T13:26:00.120 回答