Как мне увеличить свойство maxUrlLength в конфигурации в asp.net MVC 3?

Я получаю эту ошибку:

Длина URL-адреса для этого запроса превышает настроенное значение maxUrlLength.

Оглядываясь на ближайшую вещь, которую я могу найти, находится в web.config,

<requestFiltering>
   <requestLimits maxUrl="xxx">
</requestFiltering>

Однако это не MaxUrlLength и не решает проблему. Есть идеи как починить?

5 ответов

Решение

Согласно ответу Ашока, это будет равно:

<httpRuntime maxUrlLength="1024" relaxedUrlToFileSystemMapping="true"/>

в <system.web> раздел web.config.

Взгляните на этот пост от Hanselman. Хотя в этом посте речь идет о принятии обычно недопустимых символов в URL, он также упоминает, как настроить длину пути и строку запроса.

Пока мы здесь, обратите внимание, что в ASP.NET 4 вы также можете изменить допустимые длины path и queryString:

<httpRuntime maxRequestPathLength="260" maxQueryStringLength="2048" />

У меня была эта проблема в службе отдыха, которую я создал с помощью C# .net 4. Я установил переменную maxUrlLength в разделе system.web файла Web.Config.

<?xml version="1.0"?>
<configuration>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <httpRuntime maxUrlLength="2000"/>
  </system.web>
....

Вы видели эту статью MSDN, которая кажется, что вам нужно

Имея ту же проблему в IIS8, решением было модифицировать корневой Web.config для.NET Framework. Этот файл находится в папке%windir%\Microsoft.NET\Framework\framework_version\CONFIG. Редактирование файла web.config в корне сайта не решило проблему.

В моем случае я отредактировал настройку визуально в приложении IIS (область фильтрации запросов):

Это действие изменило мой web.config следующим образом:

<security>
  <requestFiltering>
    <requestLimits maxAllowedContentLength="524288000" maxQueryString="4096" />
  </requestFiltering>
</security>

Как упоминалось в некоторых других ответах, не забудьте также рассмотреть длинные строки запроса в запросе.

Другие вопросы по тегам