我有一个云服务,可以在外部打开套接字并需要列入白名单的IP地址。外部任何东西都不会启动与我的服务的连接。
当我尝试使用关联的ReservedIP地址发布时,我收到以下错误:Validation Errors: Error validating the .cscfg file against the .csdef file. Severity:Error, message:ReservedIP 'xxxx' was not mapped to an endpoint. The service definition must contain atleast one endpoint that maps to the ReservedIP..
.cscfg
<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="Gateway" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="5" osVersion="*" schemaVersion="2015-04.2.6">
<Role name="WorkerRole1">
<Instances count="1" />
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="yyyyy" />
<Setting name="APPINSIGHTS_INSTRUMENTATIONKEY" value="xxx" />
<Setting name="ASPNETCORE_ENVIRONMENT" value="dev" />
</ConfigurationSettings>
</Role>
<NetworkConfiguration>
<AddressAssignments>
<ReservedIPs>
<ReservedIP name="xxxxx"/>
</ReservedIPs>
</AddressAssignments>
</NetworkConfiguration>
</ServiceConfiguration>
答案 0 :(得分:5)
我遇到了同样的问题,我的工作解决方案是从here获取“输入端点”并将其放在WorkerRole标记内的.csdef文件中。
<Endpoints>
<InputEndpoint name="StandardWeb" protocol="http" port="80" localPort="80" />
</Endpoints>
答案 1 :(得分:3)
看起来只有包含外部端点的服务支持ReservedIP。您可以做的是添加一个外部端点,但使用NSG(Network Security Group)将其防火墙。
在定义端点的帮助中,请参阅
此外,如果您使用的机器实际上未绑定到该机器,则它不应该是一个漏洞;但在NSG中添加拒绝规则也将涵盖未来的任何变化。
[Aside]如果您的服务没有任何传入连接,则应考虑使用辅助角色而不是Web角色。长时间运行的线程可以在Web角色实例中终止。