我有一个包含网站和网络服务的VS 2008解决方案。我正在同时开发这两个,并且能够从一个调试到另一个是有帮助的。
偶尔找不到网络服务。如果我查看web.config,我发现它正在查看的端口号不是它在我使用调试器时自动运行服务的端口号。例如,web.config引用表示如下:
add key =“mynamespace.mywebservice”value =“http:// localhost:55765 / mywebservice.asmx”
当我将鼠标悬停在Cassini端口图标上时,我发现Web服务正在端口55382(或其他非55765端口)中运行。难怪它找不到它。
有没有办法强制它运行的端口号是web配置中指定的端口号?如果它没有使用Web配置端口号来确定运行它的位置......它在哪里决定?我知道在VS2005中,有一种方法可以指定调试时使用的端口号,但我无法在VS 2008中的Web服务项目中找到它。
随着越来越多的开发人员加入这个项目,这确实会引发问题 - 我该如何解决?删除和重新添加Web服务到项目修复它,但我真的必须每天做几次,而不是一个理想的解决方案。
答案 0 :(得分:3)
来自here
默认情况下,Cassini会随机分配 它托管的每个网站的端口号。 此端口号被分配 第一次使用时启动网站 Visual Studio调试器,然后 得到坚持的生命 溶液
您可以通过以下方式禁用此行为 为您的项目选择项目节点 解决方案浏览器中的Web项目和 选择View-> Properties Window (Ctrl-W,P)。更改“使用动态 端口“为False然后指定TCP 您喜欢的港口(最好保留这个 在1000-5000之间,但它可以 技术上是任何未使用的TCP端口。)
这将为您的Cassini托管 站点确定性端口号,和 使编写Indigo客户端变得更容易 使用该网站上托管的服务。
答案 1 :(得分:1)
今天我在找到解决方案的时候偶然发现了这个...如上所述,你可以用记事本打开解决方案。寻找这条线:
VWDPort = "55071"
并将端口号更改为您想要的。保存文件。如果您打开解决方案,则应提示您重新加载。如果不重启VS,你应该好好去。我不知道VS中是否有选项,但这对我来说很容易。
答案 2 :(得分:0)
在VS2008解决方案资源管理器中:右键单击您的Web项目,选择“属性”。在左侧,单击“Web”,您将看到Servers下的端口选项。