我有一个在本地运行良好的node / express应用。我已将其上载到Azure Web App,只要不启用身份验证,它就可以正常工作。启用AAD身份验证后,该应用程序将失败,并显示状态500.1011“错误请求”。我在网址中有很多查询参数。如果我充分减少了参数的长度,则应用会再次加载正常。看来Azure中的查询/标头有一些限制吗?
我已经尝试了几个小时来解决此问题,但我认为我必须承认失败。我以为this可以解决这个问题,但似乎不是。
这是我当前的web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<webSocket enabled="true" />
<handlers>
<add name="iisnode" path="server.js" verb="*" modules="iisnode"/>
</handlers>
<rewrite>
<rules>
<rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^server.js\/debug[\/]?" />
</rule>
<rule name="DynamicContent">
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
</conditions>
<action type="Rewrite" url="server.js"/>
</rule>
</rules>
</rewrite>
<security>
<requestFiltering>
<requestLimits maxQueryString="32768" maxUrl="65536"/>
</requestFiltering>
</security>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
</configuration>
答案 0 :(得分:0)
我认为我找到了问题。节点将November 2018中的最大标头大小从80kb减小到8kb。
我尝试增加max-http-header-size,但无法使其在Azure上运行。因此,我目前的解决方案是使用旧版本的node。希望最终在这些讨论中发布解决方案。