【问题标题】:404 errors when calling an asp.net MVC 3 controller with an big URL list使用大 URL 列表调用 asp.net MVC 3 控制器时出现 404 错误
【发布时间】:2012-09-24 11:38:46
【问题描述】:

我必须在 GET 请求中执行一个操作。

网址是实时构建的,如下所示:

https://my-domain.com/MyController/MyAction?MyParameter=8259%2C8318%2C8201%2C8188%2C7155%2C6894%2C8221%2C8187%2C7030%2C8214%2C7489%2C8145%2C8223%2C8208%2C8273%2C8257%2C8292%2C6931%2C7072%2C7007%2C8195%2C8235%2C7493%2C7525%2C7492%2C8262%2C7491%2C7013%2C8157%2C7180%2C7181%2C7182%2C7183%2C7421%2C7422%2C7500%2C7501%2C8238%2C8239%2C8240%2C8241%2C7710%2C7711%2C7712%2C7713%2C8068%2C8432%2C7358%2C7008%2C8135%2C8307%2C8163%2C8164%2C8132%2C8182%2C8183%2C8081%2C8083%2C8109%2C8110%2C7681%2C7682%2C7683%2C7593%2C7594%2C7595%2C7546%2C7547%2C7548%2C7577%2C7578%2C7581%2C8300%2C8301%2C8302%2C8282%2C8283%2C8284%2C8311%2C8312%2C8313%2C8217%2C8218%2C8244%2C8245%2C8479%2C8482%2C8398%2C8399%2C8400%2C8401%2C8404%2C8407%2C8392%2C8394%2C6959%2C6960%2C6961%2C7041%2C7042%2C7043%2C8227%2C8228%2C8229%2C7638%2C7708%2C7118%2C8288%2C6897%2C6898%2C6899%2C6900%2C6901%2C6902%2C6842%2C6843%2C6844%2C6845%2C6846%2C6847%2C7361%2C7362%2C7363%2C7364%2C7365%2C7366%2C8165%2C8166%2C8167%2C8168%2C8169%2C8170%2C8247%2C8248%2C8249%2C8250%2C8251%2C8252%2C8099%2C8100%2C6903%2C6904%2C6905%2C6906%2C6907%2C6908%2C7704%2C8291%2C8253%2C7709%2C8277%2C7372%2C7282%2C7552%2C8205%2C7341%2C8264%2C7384%2C7701%2C7432%2C7625%2C7169%2C6912%2C8095%2C7481%2C8452%2C7062%2C7664%2C8088%2C8209%2C8278%2C6986%2C6978%2C7128%2C7440%2C6987%2C8224%2C8225%2C8178%2C8179%2C6889%2C6890%2C8191%2C8093%2C8230%2C7317%2C6895%2C8211%2C8226%2C8285%2C7266%2C7321%2C7445%2C7672%2C7453%2C7476%2C7533%2C6967%2C8054%2C7377%2C7188%2C8323%2C8105%2C7276%2C8202%2C8072%2C7689%2C8434%2C7075%2C7257%2C7379%2C6864%2C7570%2C8146%2C8147%2C8148%2C8149%2C7018%2C7019%2C7020%2C7021%2C8031%2C7044%2C7278%2C7486%2C8409%2C7707%2C8438%2C7378%2C7265%2C7176%2C7199%2C7706%2C7632%2C6998%2C7584%2C8171%2C7399%2C7125%2C6836%2C7535%2C7528%2C6968%2C7327%2C8319%2C8098%2C7543%2C6852%2C7103%2C6882%2C8426%2C8114%2C6957%2C6952%2C7527%2C6956%2C6953%2C8196%2C6989%2C7246%2C8272%2C8320%2C8324%2C6979%2C8315%2C8293%2C8294%2C8322%2C8204%2C7203%2C7326%2C7355%2C7087%2C7009%2C7498%2C7700%2C8113%2C8274%2C8325%2C8321%2C8116%2C7211%2C7252%2C7332%2C7023%2C7074%2C6977%2C7603%2C8096%2C7063%2C7014%2C7416%2C8190%2C8310%2C7032%2C7129%2C7136%2C7131%2C7187%2C7170%2C7159%2C7532%2C7651%2C7262%2C7670%2C7402%2C7403%2C7245%2C7235%2C7601%2C7316%2C7545%2C7343%2C7376%2C7665%2C7688%2C7374%2C7375%2C8041%2C7404%2C7409%2C7419%2C8422%2C7461%2C7438%2C7443%2C7487%2C7464%2C7515%2C7514%2C7512%2C7523%2C7598%2C8176%2C7544%2C7620%2C7652%2C7690%2C8330%2C8335%2C8418%2C8417%2C8421%2C8442%2C8458%2C8492%2C8457%2C8474%2C8483

我得到一个 404 错误。

如果我将 %2C 替换为原来的 ,,我也会遇到同样的问题,只是需要多一点参数。

如果我用更少的参数发出相同的请求,它会起作用。

我已经有了这个:

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

因为之前我告诉过我,我的 maxQueryStringLength 设置太大了。

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-3 iis


    【解决方案1】:

    无论您设置多大的maxQueryStringLength,都有一个limit in the browsers。例如,某些浏览器仅支持 2048 个字符的请求长度。你的更长(2440 个字符)。您唯一能做的就是使用POST 而不是GET 来发送如此大的数据,因为POST 请求没有这样的限制。因此,您生成一个 HTML &lt;form&gt; 元素,其中 method="post"action 指向 url 和其中包含此数据的隐藏字段,然后提交此表单。

    【讨论】:

    • 看我的回答。说所有互联网都限制为 2048 个字符,这对我来说是不可想象的。希望这不是问题。在这种情况下,我只有 10 多个使用 GET 而不是 POST 的理由,我并没有问如何使用 POST 而不是 GET。无论如何,感谢您的帮助
    • 我从来没有说过所有的互联网都限制为 2048 个字符。你在哪里读到我的回答?我说过某些浏览器有这样的限制,如果您继续使用 GET 发送大数据,您的网站最终会在某些浏览器下崩溃。我建议您改用 POST 作为解决方法。我没有看到我在回答中做错了什么。无论如何,我想你更了解它。如果您在生产事件日志中遇到无法在 DEV 环境中重现的零星错误,请不要感到惊讶,因为您用于测试的浏览器没有这样的限制。
    【解决方案2】:

    事实上,我被 IIS 限制阻止了:maxUrl 大小和最大查询大小(以八位字节为单位:

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

    这解决了我的问题

    【讨论】:

      猜你喜欢
      • 2017-01-24
      • 1970-01-01
      • 2019-08-14
      • 2020-11-28
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 2013-07-07
      相关资源
      最近更新 更多