我在webapi中编写了一个通过json格式获取数据的方法。这项工作目前但是当我通过另一个参数调用此方法时,查询字符串的长度是2154个字符,我得到错误:
此请求的查询字符串的长度超过 配置了maxQueryStringLength值。
描述:未经处理 在执行当前Web请求期间发生异常。 请查看堆栈跟踪以获取有关错误的更多信息 它起源于代码。
异常详细信息:System.Web.HttpException:查询的长度 此请求的字符串超出配置的maxQueryStringLength 值。
我在system.webServer
部分
<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);
}
}
我该如何解决这个问题?
答案 0 :(得分:2)
我将此代码添加到system.webServer
部分
<security>
<requestFiltering>
<requestLimits maxUrl="30000" maxQueryString="209007151" />
</requestFiltering>
</security>
并添加
<httpRuntime maxUrlLength="10240" maxQueryStringLength="2097100" targetFramework="4.5.2"/>
进入system.web
部分并解决了