我现有的云服务运行良好。它使用2个端点(http 80& https 443)
我尝试在端口4443上添加新端点,但它无法访问,当我尝试访问此端口上的网站时,我收到了ERR_CONNECTION_TIMED_OUT。
这里是csdef:
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="MyService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6">
<WebRole name="MyWebRole" vmsize="Small">
<Sites>
<Site name="Web">
<Bindings>
<Binding name="httpsN" endpointName="httpsN" />
<Binding name="httpsIn" endpointName="httpsIn" />
<Binding name="httpIn" endpointName="http" />
</Bindings>
</Site>
</Sites>
<Endpoints>
<InputEndpoint name="httpsN" protocol="https" port="4443" certificate="myCert" />
<InputEndpoint name="httpsIn" protocol="https" port="443" certificate="myCert" />
<InputEndpoint name="http" protocol="http" port="80" />
</Endpoints>
<Certificates>
<Certificate name="myCert" storeLocation="LocalMachine" storeName="My" />
</Certificates>
</WebRole>
</ServiceDefinition>
答案 0 :(得分:1)
您的配置正确无误。您现在必须确保某些内容实际上正在侦听Web角色中的该端口。
这是我的Web角色的远程桌面会话,请注意LISTENING
州。
PS> netstat -an | select-string '443'
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING
TCP 0.0.0.0:4443 0.0.0.0:0 LISTENING
我用PowerShell伪造了两个听众:
$listener1 = [System.Net.Sockets.TcpListener]4443
$listener1.Start();
$listener2 = [System.Net.Sockets.TcpListener]443
$listener2.Start();
nmap
从互联网上扫描:
$ nmap -vvv -p 4443,443,80 multiendpointwebrole.cloudapp.net -Pn
Starting Nmap 6.47 ( http://nmap.org )
...
PORT STATE SERVICE
80/tcp open http
443/tcp open https
4443/tcp open pharos
所有三个听众都可以访问。
.csdef
:
...
<Bindings>
<Binding name="Binding1" endpointName="Endpoint1" />
<Binding name="Binding2" endpointName="Endpoint2" />
<Binding name="Binding3" endpointName="Endpoint3" />
</Bindings>
...
<Endpoints>
<InputEndpoint name="Endpoint1" protocol="http" port="80" />
<InputEndpoint name="Endpoint2" protocol="tcp" port="4443" />
<InputEndpoint name="Endpoint3" protocol="tcp" port="443" />
</Endpoints>
...
对两个端口和protocol="https"
进行了测试,并且还有适当的证书,
$ curl -kIi https://multiendpointwebrole.cloudapp.net/
HTTP/2 403
content-length: 1233
content-type: text/html
server: Microsoft-IIS/10.0
x-powered-by: ASP.NET
date: Tue, 30 Jan 2018 20:13:27 GMT
$ curl -kIi https://multiendpointwebrole.cloudapp.net:4443/
HTTP/2 403
content-length: 1233
content-type: text/html
server: Microsoft-IIS/10.0
x-powered-by: ASP.NET
date: Tue, 30 Jan 2018 20:13:43 GMT
// Ignore the 403, i had no index page.
嘿,来自Windows Server 2016的免费HTTP / 2支持!微软有多好。
答案 1 :(得分:-2)
注意:您可以定义多个端点,这些端点是HTTP,HTTPS,UDP和TCP端点的组合。您可以指定为输入端点选择的任何端口号,但为服务中的每个角色指定的端口号必须是唯一的。例如,如果指定Web角色使用HTTP端口80和HTTPS端口443,则可以指定第二个Web角色使用端口8080表示HTTP,端口8043表示HTTPS。
有关详细信息,请参阅“Azure Cloud Services – WebRole Schema”。