当我试图从部署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角色网站的网页?
你不应该使用127.0.0.1,而应该使用为WebRole指定的InputEndpoint。
您可以使用如下代码从它获得IPEndpoint实例:
RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["YourInputEndpointForWebRole"].IPEndpoint
然后从IPEndpoint实例获取IP地址。
编辑
请再次确认原因:
原因是IIS中网站的站点绑定不是*:80(像本地IIS中通常做的那样),而只是到实例的特定DIP(直接(内部)IP地址)。