![](/img/trans.png)
[英]ASP.NET 5 (vNext) causing a 500 - Internal Server Error on Azure
[英]Disabling port 80 on an asp.net vnext website on azure
我覺得這應該很容易,但我正在努力找出如何去做。
我有一個我想限制為 HTTPS 的網站。 它是一個部署到 Azure 的 asp.net vnext 網站(不是 mvc)。 它在不通過 ASP.NET 管道的情況下提供靜態文件。
在以前版本的 asp.net 中,您可以添加 system.webServer 規則來進行重定向。 這已經從 vNext 消失了。 如果我使用 Mvc,我可以使用 RequireHttps 屬性,或者我可以編寫自定義中間件來執行重定向,但這僅在 asp.net 管道被激活時才會啟動。 我的 html 和 js(它是一個 SPA 應用程序)仍會提供。 如果我部署到 IIS 而不是 Azure,我可以在那里配置它。
那么,如何告訴 azure 網站只在沒有 Web 配置文件的情況下在端口 443 上響應?
根據 Azure 文檔,您可以為使用 Azure 支持的任何編程語言(Node.js、PHP、Python Django、Java)編寫的應用程序添加 Web 配置文件。 您可以在此處找到詳細信息。
這是一個示例:
<?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 自動生成的那個。
為了提高安全級別,您可能可以使用 nsg。 Azure 文檔稱 NSG 為“您可以使用 Azure 網絡安全組來過濾進出 Azure 虛擬網絡中的 Azure 資源的網絡流量”。 您可以嘗試使用 cli 創建一個 nsg 並在其中放置規則以阻止到端口 80 的流量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.