2016-08-19 181 views
4

有没有办法在Asp.Net Core中设置maxUrlLength配置值?我看到这是如何在web.config中在早期版本的框架中进行,例如:ASP.Net核心maxUrlLength

How do I increase the maxUrlLength property in the config in asp.net MVC 3?

然而,这似乎并没有在ASP.Net核心工作....

+0

看来这个参数并没有使它在1.0版本。看看这个问题:https://github.com/aspnet/KestrelHttpServer/issues/475 –

+0

这是你的前端服务器的功能(例如IIS或NGinx)。 ASP.NET Core对此值没有限制。 – Tratcher

回答

6

你是正确的,maxUrlLength配置值不可用是不可用的ASP.net核心它在以前的版本中可用的方式。干净的原因是,以前的版本只支持IIS和Windows,因此它与此紧密集成。现在,它受到其他操作系统的支持,并且按照他们的方式反向代理实际的服务器。像在Windows IIS和Linux NGinx中一样。

  1. IIS将与Kestrel通信。
  2. NGIx将与Kestrel合作。

现在我们要做的任何请求过滤或url设置都是在IIS或NGinx级别。

如果您在Windows中工作,您会发现“请求筛选”功能,并且您必须添加Web.config文件。 (我还没有测试NGInx)

你必须这样做。

<system.webServer> 
    <!-- Here you have other settings related to handlers.--> 
    <security> 
     <requestFiltering> 
     <requestLimits maxAllowedContentLength="3000000" maxUrl="10241" maxQueryString="20481" /> 
     </requestFiltering> 
    </security> 
</system.webServer> 
+0

这个答案在正确的大概情况下,我根据这里描述的方式改变了各种配置,但最终的结果是我的注册表更新了这里所描述的: http://stackoverflow.com/questions/15004232/wcf-get-url-length-limit-issue-bad-request-invalid-url 注意我正在使用IIS Express,并且这还需要重启我的机器以使注册表设置生效。 – Marty