访问 Url 重写规则中的特定 appsettings 键
Access specific appsettings key in Url Rewrite rules
我正在尝试访问 Url 重写规则中的 AppSettings Key,但我不确定如何访问它们。谁能帮帮我?
<appSettings>
<add key="APIUrl" value="https://www.x.com/api/{R:1}" />
</appSettings>
<system.webServer>
<rewrite>
<rules>
<rule name="ProxyApi" stopProcessing="true">
<match url="^api/?(.*)" />
<serverVariables>
<set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
<set name="HTTP_X_ORIGINAL_HOST" value="{HTTP_HOST}" />
</serverVariables>
<action type="Rewrite" url="{APIUrl}" />
</rule>
</rules>
</rewrite>
</system.webServer>
正在尝试访问 Url 重写规则
中的 APIUrl 密钥
我认为应用程序设置在您的配置文件中的其他地方不可用。
我发现了两种使用 msbuild 解决此问题的方法:
使用xmlupdate task from MSBuild Community Tasks Project更新配置文件。我的工作已经在使用它,所以这是我走的路。看起来像:
<XmlUpdate
XPath="//rule[@name='ProxyApi']/action/@url"
XmlFileName="{Your Config File Location}"
Value="https://www.x.com/api/{R:1}" />
使用 XslTransformation Task 更新您的配置文件。此解决方案是内置的,但需要更多 XSL 知识。 Xsl 看起来像这样:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="//rule[@name='ProxyApi']/action/@url">
<xsl:attribute name="url">
<xsl:value-of select="'https://www.x.com/api/{R:1}'"/>
</xsl:attribute>
</xsl:template>
</xsl:stylesheet>
我正在尝试访问 Url 重写规则中的 AppSettings Key,但我不确定如何访问它们。谁能帮帮我?
<appSettings>
<add key="APIUrl" value="https://www.x.com/api/{R:1}" />
</appSettings>
<system.webServer>
<rewrite>
<rules>
<rule name="ProxyApi" stopProcessing="true">
<match url="^api/?(.*)" />
<serverVariables>
<set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
<set name="HTTP_X_ORIGINAL_HOST" value="{HTTP_HOST}" />
</serverVariables>
<action type="Rewrite" url="{APIUrl}" />
</rule>
</rules>
</rewrite>
</system.webServer>
正在尝试访问 Url 重写规则
中的 APIUrl 密钥我认为应用程序设置在您的配置文件中的其他地方不可用。
我发现了两种使用 msbuild 解决此问题的方法:
使用xmlupdate task from MSBuild Community Tasks Project更新配置文件。我的工作已经在使用它,所以这是我走的路。看起来像:
<XmlUpdate XPath="//rule[@name='ProxyApi']/action/@url" XmlFileName="{Your Config File Location}" Value="https://www.x.com/api/{R:1}" />
使用 XslTransformation Task 更新您的配置文件。此解决方案是内置的,但需要更多 XSL 知识。 Xsl 看起来像这样:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml" indent="yes"/> <!-- identity transform --> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="//rule[@name='ProxyApi']/action/@url"> <xsl:attribute name="url"> <xsl:value-of select="'https://www.x.com/api/{R:1}'"/> </xsl:attribute> </xsl:template> </xsl:stylesheet>