IIS中的ASP.NET Core,(ICollection / List / Array)appsettings.json - > web.config

问题描述 投票:1回答:2

使用Options pattern我创建了一个具有ICollection<string> allowedHosts属性的类。在appsettings.json里面我添加了[ "google.nl", "bing.com" ],当应用程序在开发模式下运行时一切都很好。

但是,在生产中,我们使用IIS并使用IIS的配置编辑器来定义environmentVariables,并将其保存为web.config,并且有点像这样:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <aspNetCore>
            <environmentVariables>
                <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" />
                <environmentVariable name="AllowedHosts" value="How to format?" />
            </environmentVariables>
        </aspNetCore>
    </system.webServer>
</configuration>

我的问题是:如何从appsettings.json转换此JSON:

{
  "allowedHosts": [ "google.com", "bing.com" ]
}

要用于qazxsw poi文件的XML?我尝试使用qazxsw poi,qazxsw poi,但没有一个正在工作。

编辑:我使用了一个糟糕的属性名称,在这种情况下,web.config有不同的用途,我应该更改属性名称。

json iis asp.net-core web-config appsettings
2个回答
1
投票

["google.com"]是一种特殊配置,它接受以分号分隔的主机名列表,而不包含端口号。有关更多详细信息,请参阅"google.com"

如果您需要允许多个主机,可以按如下方式配置它:

AllowedHosts

如果您想从AllowedHosts配置获取数组,您可以将密钥名称更改为:

Host filtering

EG :

<aspNetCore processPath="dotnet" arguments=".\abc.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess">
    <environmentVariables>
        <environmentVariable name="AllowedHosts" value="google.com;bing.com" />
    </environmentVariables>
</aspNetCore>

要在ASP.NET Core中获取该数组:

Web.Config

0
投票

你不能在你的Startup课程中设置它吗? <key-name>:<index>

© www.soinside.com 2019 - 2024. All rights reserved.