Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Url解码在Azure Web应用程序上不起作用_Asp.net_Azure_Umbraco_Azure Web App Service_Urldecode - Fatal编程技术网

Asp.net Url解码在Azure Web应用程序上不起作用

Asp.net Url解码在Azure Web应用程序上不起作用,asp.net,azure,umbraco,azure-web-app-service,urldecode,Asp.net,Azure,Umbraco,Azure Web App Service,Urldecode,我似乎有一个问题,Url的解码在舞台上的网站不正确。我一直在网上四处寻找,但似乎找不到任何关于如何切换默认使用的解码方法的信息。我可以看出stage站点正在使用Windows-1252解码URL,示例如下: 舞台场地(错误) 开发站点(正确) 开发人员和现场站点都呈现了正确的url,该url正在使用UTF-8进行解码。有关解码字符的比较,请访问此链接 我真的不知所措,stage和live都是在Azure web应用程序中设置的,从我所看到的情况来看,它们的设置都是相同的(不过我感觉它可能是某个地

我似乎有一个问题,Url的解码在舞台上的网站不正确。我一直在网上四处寻找,但似乎找不到任何关于如何切换默认使用的解码方法的信息。我可以看出stage站点正在使用Windows-1252解码URL,示例如下:

舞台场地(错误)

开发站点(正确)

开发人员和现场站点都呈现了正确的url,该url正在使用UTF-8进行解码。有关解码字符的比较,请访问此链接

我真的不知所措,stage和live都是在Azure web应用程序中设置的,从我所看到的情况来看,它们的设置都是相同的(不过我感觉它可能是某个地方的服务器设置)


如果有人能给我更多的信息,这是如何工作的,或者如果有可能改变服务器上的解码设置,将不胜感激。如果需要更多信息,我很乐意提供。我只是不确定哪些信息有用。

经过进一步调查后,我注意到stage网站实际上向一个URL发出了301个永久重定向,该URL首先使用windows-1252解码,然后重新编码为UTF-8(这很奇怪,因为我在代码中找不到任何地方可以这样做,在重写规则中也找不到任何东西)

但是,通过添加永久规范重定向来解决此问题,以解析不带www.的临时站点,并将其强制为stage.sitename.come。下面的规范示例:

<rule name="Redirect to WWW" stopProcessing="true" >
    <match url="(.*)" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^www\." negate="true"/>
    </conditions>
    <action type="Redirect" url="https://www.{HTTP_HOST}{HTTP_URL}" redirectType="Permanent" appendQueryString="false" />
</rule>


如果有人知道这将解决问题的原因,他很想知道:)。希望这能帮助其他人解决这个问题。

经过进一步调查后,我注意到stage站点实际上向一个URL发出了301个永久重定向,该URL首先使用windows-1252解码,然后重新编码为UTF-8(这很奇怪,因为我在代码中找不到任何地方可以这样做,在重写规则中也找不到任何东西)

但是,通过添加永久规范重定向来解决此问题,以解析不带www.的临时站点,并将其强制为stage.sitename.come。下面的规范示例:

<rule name="Redirect to WWW" stopProcessing="true" >
    <match url="(.*)" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^www\." negate="true"/>
    </conditions>
    <action type="Redirect" url="https://www.{HTTP_HOST}{HTTP_URL}" redirectType="Permanent" appendQueryString="false" />
</rule>

如果有人知道这将解决问题的原因,他很想知道:)。希望这对其他人有帮助,如果他们有这个问题

<rule name="Redirect to WWW" stopProcessing="true" >
    <match url="(.*)" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^www\." negate="true"/>
    </conditions>
    <action type="Redirect" url="https://www.{HTTP_HOST}{HTTP_URL}" redirectType="Permanent" appendQueryString="false" />
</rule>