【问题标题】:Rest Api Arguments in in C#/ IIS seems too longC#/ IIS 中的 Rest Api Arguments 似乎太长了
【发布时间】:2020-05-05 22:40:29
【问题描述】:

我是 Web 开发的新手,我尝试在 vs2019/windows server 2016 中创建一个简单的 rest api 用于评估目的。

我的案例/问题如下。我有一个简单的控制器,它有一个 2 参数(字符串,字符串)方法。如果整个请求 utf8 字符串 > 2101 个字符,则服务器通常返回 404。

我用一个虚拟的 ("AAAAA.....") 请求字符串来测试这个无限的时间。 2002 长度失败,2001 长度有效。我试图修复web.config,但没有运气,现在我有一个maxQueryStringLength exception

谁能指出我正确的方向?

【问题讨论】:

  • 它是Get API 吗?
  • 将所有参数放在 URL 中是否有意义,为什么不尝试使用正文发送参数?
  • 您在这里遇到了一个极端情况。一般准则是 URL 不应超过 ~2000 个字符,因为意外的事情开始发生。有一个很好的解释here

标签: c# windows rest iis


【解决方案1】:

在您的网站 web.config 中,添加以下配置(在现有元素存在时修改它们,否则添加新元素):

<system.webserver>
  <security> 
    <requestFiltering> 
      <requestLimits maxUrl="65535" maxQueryString="65535"/> 
    </requestFiltering> 
  </security> 
</system.webServer>

<system.web> 
  <httpRuntime maxRequestLength="65535" maxUrlLength="65535" maxQueryStringLength="65535" />
</system.web>

更改后不要忘记重新启动站点或 iis。

【讨论】:

    猜你喜欢
    • 2020-04-23
    • 2011-06-23
    • 2020-11-28
    • 2015-01-07
    • 2016-08-10
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 2018-02-11
    相关资源
    最近更新 更多