当我试图从部署Azure web角色的机器打开站点时,出现404

本文关键字:机器 站点 出现 角色 部署 web Azure | 更新日期: 2023-09-27 18:15:38

RoleEntryPoint.OnStart()结束时,我想打开web角色网站,以确保它不会打破一些愚蠢的错误。所以我做了如下操作:

WebRequest request = WebRequest.Create( "http://127.0.0.1" );
using( WebResponse response = request.GetResponse() ) {
}

,这在WebException(404) Not Found文本中失败。该角色在端口80上有一个开放的HTTP端点,所以这应该不是问题。但是,如果我省略该代码并且角色启动,我可以打开http://mysubdomain.cloudpapp.net,没有问题。

这是怎么回事?如何从web角色内打开web角色网站的网页?

当我试图从部署Azure web角色的机器打开站点时,出现404

你不应该使用127.0.0.1,而应该使用为WebRole指定的InputEndpoint。

您可以使用如下代码从它获得IPEndpoint实例:

RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["YourInputEndpointForWebRole"].IPEndpoint

然后从IPEndpoint实例获取IP地址。

编辑

请再次确认原因:

原因是IIS中网站的站点绑定不是*:80(像本地IIS中通常做的那样),而只是到实例的特定DIP(直接(内部)IP地址)。