在ServiceStack中增加maxRequestLength以获取特定路由

时间:2014-01-03 11:30:33

标签: c# web-config servicestack

所以我最近编写了一个简单的服务来将文件上传到我的服务器。一切正常。我的web.config看起来像这样(最大上传大小限制为20 MB):

<configuration>
  <system.web>
    <httpRuntime maxRequestLength="20480" executionTimeout="600" />
    <httpHandlers>
      <add path="api*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" />
    </httpHandlers>
    ...
  </system.web>
</configuration>

我的所有路由都以/ api /开头,例如我的上传服务位于/ api / documents / upload。

现在我的问题是:是否可以为不同的服务定义不同的上传大小? (在我的例子中,每项服务限制为20 MB!)

我尝试了一些带有location-tag的东西,但它没有使用httpRuntime-tag。有人尝试过这样的东西吗?

1 个答案:

答案 0 :(得分:3)

使用location元素,它应该有效(检查没有~/的路径)

<configuration>
  <location path="api/documents/upload">
    <system.web>
      <httpRuntime maxRequestLength="20480" />
    </system.web>
    <system.webServer>
      <security> 
        <requestFiltering>
          <requestLimits maxAllowedContentLength="20971520" />
        </requestFiltering>
      </security>
    </system.webServer>
  </location>
</configuration>