簡體   English   中英

如何在 Azure web 應用程序 web.config 文件中添加/設置新的環境變量

[英]How to add/set new environmental varaible in Azure web app web.config file

我在 Microsoft Azure Web App 上部署了一個應用程序。 我已經創建了 web.config 文件。

我有 2 個自定義域鏈接到我的 web 應用程序

  1. api-stage.example.com
  2. api-prev.example.com

當我的 API 被訪問時,我想設置 1 個名為 PLATFORM 的環境變量。 例如。 When I access api using api-stage.example.com I want to set value of PLATFORM to stage and when I access api using api-prev.example.com, I want to set value of PLATFORM to prev.

我在下面的代碼中訪問這個環境變量$platform = getenv('PLATFORM');

我的 web.config 文件的內容如下所示。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpProtocol allowKeepAlive="true">
        </httpProtocol>
        <staticContent>
            <mimeMap fileExtension=".json" mimeType="application/json" />
        </staticContent>
        <rewrite>
            <rules>
                <rule name="ABC" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php" />
                </rule>
            </rules>
        </rewrite>
        <handlers>
            <remove name="OPTIONSVerbHandler" />
            <remove name="PHP56_via_FastCGI" />
            <add name="PHP56_via_FastCGI" path="*.php" verb="GET, HEAD, POST, OPTION, DELETE, PUT, TRACE" modules="FastCgiModule" scriptProcessor="D:\Program Files (x86)\PHP\v5.6\php-cgi.exe" resourceType="Either" requireAccess="Script" />
        </handlers>
    </system.webServer>
</configuration>

有人可以幫我怎么做嗎? 我需要在 web.config 文件中添加哪個塊。 我無法通過應用程序設置使用 Azure 門戶來執行此操作,因為它只允許我為 PLATFORM 變量設置一個值。 但我想使用我用來調用 API 的主機名來設置和訪問它。

如果您不想在門戶中設置變量,可以參考此文檔: 配置應用程序設置

對於 ASP.NET 和 ASP.NET Core 開發者來說,在應用服務中設置應用設置就像在 Web.config 或應用程序設置中設置它們一樣。

注意:應用服務中的值會覆蓋 Web.config 或 appsettings.json 中的值。 對於其他語言,文檔還提供了鏈接。

以下是我的測試。 嘗試使用System.Configuration.ConfigurationManager.AppSettings["testkey"]來獲取值。

在此處輸入圖像描述

在此處輸入圖像描述

希望這可以幫助你。 根據您的描述,您將兩個環境 Web 部署到一個應用服務中,一個是 stage,一個是 prev。 因此,如果您使用的是標准、高級或獨立應用服務計划層,為什么不嘗試暫存槽

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM