Azure API 应用程序引发请求大小限制错误

Posted

技术标签:

【中文标题】Azure API 应用程序引发请求大小限制错误【英文标题】:Azure API App Throwing Request Size constraints Errors 【发布时间】:2021-12-26 12:15:40 【问题描述】:

我在 Azure API 应用程序中托管了一个示例 API,名称为 https://epdpoc.azurewebsites.net/swagger/index.html 这是基于 API.NET Core 5.0 的 Web API。第二个参数 htmlText,作为查询字符串传递。查询字符串值如下

<table border="0" >
<tr>
<td width ="50%">&nbsp;</td>
<td width = "50%">&nbsp;</td>
</tr>
<tr><td colspan=2><font face="Arial" size="2" >
SALUTATION<br>

<font color="blue"><b>Attachments can be located below the Subject line or at the end of the email.  For the Policy or Endorsement documents, please follow the AEPEx process.</font></b><br><br>

Thank you for choosing Zurich. Providing high-quality insurance solutions to our customers is a priority we share, and we appreciate your trust and your business. <br><br>

We are pleased to inform you that any policies, endorsements or audits that are associated with the policy number(s) referenced below will be delivered by Aon via AEPEx <font color="blue"><b>(normally within two business days)</font></b>, per Aon's request. Please make sure that all Bridge headers have been updated to ensure that your document(s) is/are delivered to you, via AEPEx, as quickly as possible.<br><br>

<font color="blue"><b>AON has requested Zurich to not forward attachments that will be delivered via AEPEx.  If you have any questions concerning this policy, please contact your office AEPEx Champion.</font></b><br><br>

Please distribute a copy to the client along with all other relevant information.<br><br>

Our commitment does not stop here. We pride ourselves on helping customers protect what they value most, and that goal includes cultivating an effective and collaborative working relationship with you. We strive to exceed your expectations with personalized and responsive service. Should you have any questions or suggestions, do not hesitate to contact your Zurich International Service Representative listed below.<br><br>

We look forward to working together on behalf of our valued customers.<br><br>
</font></td></tr>

<tr><td align="left" valign="top"><font face="Arial" size="2"><b>
Customer Name:
</b></font></td>
<td valign="top" colspan=3><font face="Arial" size="2">
CUST_NM
</font></td></tr>

<tr><td align="left" valign="top"><font face="Arial" size="2"><b>
Policy Number(s)/Effective Date(s):
</b></font></td>
<td valign="top" colspan=3><font face="Arial" size="2">
POL_NUM
</font></td></tr>

<tr><td align="left" valign="top" colspan=4><font face="Arial" size="2"><b>
International Service Representative contact information:</b></font></td></tr>

<tr><td align="left" valign="top"><font face="Arial" size="2"></font></td>
<td align="left" valign="top"><font face="Arial" size="2" colspan=3>
UDW_ASSIST_NM<br>
UDW_ASSIST_PHONE<br>
UDW_ASSIST_EMAIL<br>
</font></td>
<td valign="top"><font face="Arial" size="2">
</font></td></tr>

</table>

<br><font face="Arial" size="2">
COMMENTS
</font><br>
<br>

<table  border="1">

<tr><td valign="top" ><font face="Arial" size="2" color="blue">
<b>Useful links for Brokers:</b><br><br>
<a href=https://www.zurichna.com/en/brokers>Zurich Broker Resource Center</a>
<br><br>
<a href=https://www.zurichna.com/>Zurich North America website</a>
<br><br>
<a href=https://www.zurichna.com/en/industries/international/largeintl>Zurich solutions for Large Multinational Global</a>
<br><br>
<a href=https://www.zurichna.com/en/brokers/appetites>Zurich appetite and contacts guide for Brokers</a>
<br><br>
</font></td>

<td valign="top" ><font face="Arial" size="2" color="blue">
<b>Useful links for Clients:</b><br><br>
<a href=https://www.zurichna.com/en/claims>Zurich Claims Website (with kits and reporting guide)</a>
<br><br>
<a href=https://www.zurichna.com/_/media/dbe/zna/docs/claims/zurich-accident-assistance-guide.pdf>Zurich accident assistance guide (driver kit)</a>
<br><br>
<a href=http://www.zurichna.com/en/risk>Zurich Risk Engineering</a><br><br>
<a href=https://esolutions.zurichna.com/s3/Boiler-Inspection-Request-System>Boiler inspection request online</a><br><br>
</font></td></tr>
</table>

通过如下设置请求大小,我有一个 Web.Config。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <!-- To customize the asp.net core module uncomment and edit the following section. 
  For more info see https://go.microsoft.com/fwlink/?linkid=838655 -->
  <system.webServer>
    <handlers>
      <remove name="aspNetCore" />
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />
    <security>
      <requestFiltering>
        <!-- This will handle requests up to 50MB -->
        ***<requestLimits maxAllowedContentLength="52428800" />***
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>

我仍然收到来自 API 应用程序的请求大小限制错误,如下所示。

验证 配置/system.webServer/security/requestFiltering/requestLimits@maxQueryString 在 applicationhost.config 或 web.config 文件中设置。

这里有什么线索吗?需要进行其他设置吗?

【问题讨论】:

在 web.config --> requestFiltering-->将 更改为 并且还要加上 …… 【参考方案1】:

解决方法是更改​​ maxQueryString 设置(如果问题出在路径中,则更改为 maxUrl)。为此,请修改 web.config 文件中的安全元素:

 <system.webServer>  
    <security>  
      <requestFiltering>  
        <requestLimits maxUrlLength="10999" maxQueryString="2097151"/>  
      </requestFiltering>  
    </security>  
  </system.webServer>

在标签中设置 maxQueryStringLength 属性:

<system.web> 
  <httpRuntime maxUrlLength="10999" maxQueryStringLength="2097151" enable="true"/> 
</system.web>

maxQueryStringLength 默认为 2048。

注意:以上只是一个例子。根据您的要求设置值。

详情请咨询Configuration Sample。

【讨论】:

大小错误已解决,并且在本地也可以正常工作,但 Azure 仍会剪切传递的 HTML。它显示类似“指定的目录或文件在 Web 服务器上不存在。URL 包含印刷错误。自定义过滤器或模块,如 URLScan,限制对文件的访问”。 Azure 中似乎有限制将 HTML 类型作为查询字符串传递。

以上是关于Azure API 应用程序引发请求大小限制错误的主要内容,如果未能解决你的问题,请参考以下文章

SQL Azure 引发 40197 错误(级别 20,状态 4,代码 9002)

Azure Api 服务请求限制

使用 Terraform 在 Azure AD 应用注册中的应用程序 ID URI 引发错误

进行预览时出现 Bigquery API 限制超出错误

使用 Azure 文本翻译 API 时如何处理限制?

Azure API 响应中缺少速率限制标头