2015-08-28 94 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 –