【问题标题】:VS 2008 debugger: How does it decide what Cassini port to run a web service under?VS 2008 调试器:它如何决定在哪个 Cassini 端口下运行 Web 服务?
【发布时间】:2009-08-24 13:22:43
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: visual-studio-2008 web-services cassini


    【解决方案1】:

    来自here

    默认情况下,Cassini 会随机分配一个 它托管的每个网站的端口号。 此端口号分配给 第一次使用 Visual Studio 调试器,然后 终生坚持 解决方案。

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

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

    【讨论】:

      【解决方案2】:

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

      VWDPort = "55071"
      

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 是的,这在 VS2005 中有效。我在 VS 2008 的网络服务下没有“网络”选项。
        • 我刚刚在我的解决方案中添加了一个 Web 服务应用程序,并且我有“Web”选项。不知道为什么你没有它。
        猜你喜欢
        • 1970-01-01
        • 2010-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多