首页 > 解决方案 > 长 Web API 路由属性除以零错误

问题描述

我正在创建一个 android 应用程序,我使用 web api 从服务器发送和接收 json 数据。我的查询之一在路由属性中包含多达 30 个参数,如下所示。结果,我尝试除以零错误。错误行是GlobalConfiguration.Configure(AddressOf Register)我在 web.condfig 文件中增加了 maxURLlength、maxQueryStringLength 和 maxRequestLength,但没有任何效果。

问题:什么会导致这个问题?每个带有特定路由属性的输出操作都在控制器中工作。

试图除以零。 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.DivideByZeroException:试图除以零。

<Route("api/dtl/GetResults/{1}/{30})>

标签: androidxamarinasp.net-web-api

解决方案


所以我找到了我正在寻找的答案。不允许长路线,这就是为什么我得到不能除以零错误的原因。我做错事了。我需要做的就是以以下形式正确配置我的路线

<Route("api/DTL/ActionName")>

代替

<Route("api/dtl/ActionName/{}/{}/{}/{}/{}/{}/{}/{}/{}/{}/{}/{}/{Zip}")>

然后我可以通过这样的 url 调用这个动作

http://localhost:17895/api/dtl/PostCreateMember?Username=jason&Gender=Male

所以只要我定义了模型来接受它,url就可以任意长。您可以在https://blog.scottlogic.com/2016/01/20/restful-api-with-aspnet50.html了解更多信息


推荐阅读