我最近遇到了一个问题,我正在为一个客户运行一个简单的Web服务。该服务接受GET或POST。POST方法的定义如下:
public IHttpActionResult PostUpload(UploadModel model)
{ ... }模型如下:
public class UploadModel
{
public Guid UserKey { get; set; }
public string OrgCode { get; set; }
public byte[] Export { get; set; }
}客户今天报告说,我们为与服务交互而构建的客户端程序开始出现问题。每当程序从服务接收到状态代码时,即记录200。每当客户运行该程序时,他都会收到404 --没有找到。我在IIS日志中验证了程序正在发送POST请求,并且URI是正确的。
当我运行程序时,它总是收到200的状态。
方法中的代码只返回两个可能的IHttpActionResult中的一个:如果没有问题,则返回InternalServerError()。
使用Postman,我尝试为参数UserKey、OrgCode和Export发送各种不同的组合/值,但我无法获得该API来发送200或500状态以外的任何其他信息。我试着使用与客户相同的数据,从我的终端一直到现在。
这似乎是某种路由问题,就像它无法识别正确的方法一样,但我看不出问题是什么。会很感激有人指出我显然错过了什么。
发布于 2016-04-12 13:35:36
与社区分享解决方案:在与客户进一步接触之后,我不得不测试的数据与他所拥有的不一样。他在邮件中发送的数据比我发送的要大得多。这引发了一个关于我在过去遇到的事情的想法。我非常专注于URI和路由,以及特定的错误(404),以至于我没有考虑允许的最大上传大小。
在web配置中设置以下内容以允许最多100 up的请求修复此问题:
<system.web>
<httpRuntime maxRequestLength="102400" />
</system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="104857600" />
</requestFiltering>
</security>
</system.webServer>https://stackoverflow.com/questions/36562792
复制相似问题