2015-08-28 36 views
0

我有一种感觉,这应该很容易,但我努力找出如何去做。禁用Azure上的asp.net vnext网站上的端口80

我有一个网站,我想限制为HTTPS。它是一个部署到Azure的asp.net vnext网站(不是mvc)。它正在提供静态文件而无需通过ASP.NET管道。

在之前的asp.net版本中,您可以添加system.webServer规则来执行重定向。这从vNext消失了。如果我使用Mvc,我可以使用RequireHttps属性,或者我可以编写自定义中间件来执行重定向,但只有在启用asp.net管道时才会启用。我的html和js(这是一个SPA应用程序)仍然会提供。如果我正在部署到IIS而不是Azure,则可以在此处进行配置。

那么,我该如何告诉一个天蓝色的网站,只有在没有web配置文件的端口443上进行响应?

+0

[更新]我设法使用IIS管理器进行远程管理以连接到Azure网站,并且可以在SSL设置下启用Require SSL。尽管设置在每个部署中都重置,但并非真正可接受的解决方法。 –

回答

2

根据Azure文档,您可以为使用Azure支持的任何编程语言(Node.js,PHP,Python Django,Java)编写的应用程序添加Web配置文件。你可以找到详细的信息here.

这里有一个例子:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
    <rewrite> 
     <rules> 
     <rule name="Force HTTPS" enabled="true"> 
     <match url="(.*)" ignoreCase="false" /> 
     <conditions> 
      <add input="{HTTPS}" pattern="off" /> 
     </conditions> 
     <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" /> 
     </rule> 
     </rules> 
    </rewrite> 
    </system.webServer> 
</configuration> 

您可以通过添加web.config文件到您的部署实现重定向。该文件说:

Azure上的应用服务 - 托管Azure的部署时期间自动创建文件,所以你永远不会看到它。如果您将其中一个作为应用程序的一部分,它将覆盖Azure自动生成的一个。

+0

这工作。非常感谢@jsturtevant –