如何在 webapi 中配置 maxQueryStringLength?
Posted
技术标签:
【中文标题】如何在 webapi 中配置 maxQueryStringLength?【英文标题】:How to configure maxQueryStringLength in webapi? 【发布时间】:2018-07-21 02:23:35 【问题描述】:我在webapi中写了一个以json格式获取数据的方法。目前这项工作,但是当我通过另一个参数调用此方法时,查询字符串的长度为 2154 个字符,让我出错:
此请求的查询字符串长度超过 配置 maxQueryStringLength 值。
描述:一个未处理的 执行当前 Web 请求期间发生异常。 请查看堆栈跟踪以获取有关错误的更多信息和 它起源于代码。
异常详细信息:System.Web.HttpException:查询的长度 此请求的字符串超出了配置的 maxQueryStringLength 价值。
我在 system.webServer
部分内的代码下方添加到 webconfig
<security>
<requestFiltering>
<requestLimits maxQueryString="5000" maxUrl="5000" maxAllowedContentLength="102400000" />
</requestFiltering>
</security>
但没有解决。
webapi 方法:
[HttpPost,HttpGet]
public IHttpActionResult LockSeats(string ticketsJson, bool checkCompartment, string userId, string ipAddress)
try
List<WagonAvaliableResponse> tickets = JsonConvert.DeserializeObject<List<WagonAvaliableResponse>>(ticketsJson);
AdakTrainLibrary.ResultLockSeat resultLockSeat = _adakTrain.LockSeats(tickets, 1, 1, "1", "1", checkCompartment, userId, ipAddress, TrainUserId, TrainPass);
return Ok(resultLockSeat);
catch (Exception e)
return Ok(e);
我该如何解决这个问题?
【问题讨论】:
***.com/questions/8159321/… 有帮助吗? 好的解决了... 【参考方案1】:我将此代码添加到system.webServer
部分
<security>
<requestFiltering>
<requestLimits maxUrl="30000" maxQueryString="209007151" />
</requestFiltering>
</security>
并添加
<httpRuntime maxUrlLength="10240" maxQueryStringLength="2097100" targetFramework="4.5.2"/>
进入system.web
部分并解决
【讨论】:
这个 webapi 添加到 web 应用程序项目中。这个 API 在网站内部工作。以上是关于如何在 webapi 中配置 maxQueryStringLength?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 .NET Core 2.2 WebApi 和 Azure AD 2.0 中配置 Swagger?