在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角色站点的Web页面?
答案 0 :(得分:2)
您不应使用127.0.0.1,而是使用为WebRole指定的InputEndpoint。
您可以通过sode获取IPEndpoint实例,如:
RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["YourInputEndpointForWebRole"].IPEndpoint
然后从IP Address instace获取IPEndpoint。
修改强>
只需仔细检查以确认原因:
原因是IIS中的WebSite的站点绑定不是*:80(就像在本地IIS中一样),而只是实例的特定DIP(直接(内部)IP地址)。 / p>