我已经编写了一个WCF Web服务(不是一个网站,只是基于HTTP的JSON),旨在在Azure中运行。我需要为它编写测试。
我知道怎么做,但看起来很业余:
http://localhost:81/
)我希望能够这样做:
有办法吗?
答案 0 :(得分:1)
有两种方法可以做到这一点。由于您使用的是Windows Azure,我假设您正在使用模拟器。使用模拟器意味着RoleEnvironment可用,您可以获得可用的角色,实例和端点列表。
var endpoint = RoleEnvironment.Roles["WebRole1"].Instances.First().InstanceEndpoints["Endpoint1"];
var siteUrl = String.Format("{0}://{1}", endpoint.Protocol, endpoint.IPEndpoint);
此代码将获得名为 WebRole1 的角色,获取此角色的第一个实例(您可以使用它来测试您的Web服务是否支持负载平衡)并获取 InstanceEndpoint 。实例端点将为您提供所需的所有信息,如协议(http / https)和IP /端口(这些是您在ServiceConfiguration中配置的内容)。
注意:这也适用于在模拟器外部运行的进程(如测试项目)。您唯一需要做的就是引用Microsoft.WindowsAzure.ServiceRuntime。
除此之外,您还可以尝试使用ServerManager类来查找在IIS中运行的当前站点,但如果您在IIS Express中运行,我认为这不会起作用(如果你正在使用Azure)。
答案 1 :(得分:0)
修复WCF项目的端口号:转到项目属性,将“use dynamic ports”设置为false,然后指定固定数字,例如81。
在解决方案中指定多个启动项目:解决方案上的鼠标右键:选择“set startup projects”,然后检查radiobutton“多个启动项目”,在启动列表中包含您的WCF服务项目。
我希望这符合您的需求......