C# 参数值不一致-Azure API应用程序客户端调用本地IIS托管的API
我坐了一整天,弄不明白这件事。我在stackoverflow和web上搜索过,但没有找到答案 设置 这不是最佳设置,但由于遗留代码的原因,我必须处理它 我在客户端web上有一个FileController(API控制器)类,用于上载文件。MVC控制器正在通过FileController.UploadFiles()调用jquery.ajax。FileController.UploadFiles()从数据库中获取一些数据,然后向storageAPI发送请求,storageAPI根据CustomResponse对象中的设置参数以某种方式将文件存储在blob中 问题是参数CustomResponse有时在到达控制器时为null,有时我实际上有一个值。这似乎是完全随机的 我已经通过单击客户端GUI上的上载按钮手动测试了它,该按钮使用Ajax调用FileController,后者反过来调用API。客户端web和存储api都托管在本地,并托管在本地IIS上。会不会是碰撞 当我使用大摇大摆的用户界面发布文章时,它不是空的。然后每次它都会获取内容参数 当我调试时,请求总是到达存储API。因此,它们之间的“连线”很好 我尝试了异步和非异步调用,并将API中的方法更改为同步和异步,没有区别 代码 代码 文件控制器(客户端) StorageAPI模型定制请求C# 参数值不一致-Azure API应用程序客户端调用本地IIS托管的API,c#,ajax,azure,iis,C#,Ajax,Azure,Iis,我坐了一整天,弄不明白这件事。我在stackoverflow和web上搜索过,但没有找到答案 设置 这不是最佳设置,但由于遗留代码的原因,我必须处理它 我在客户端web上有一个FileController(API控制器)类,用于上载文件。MVC控制器正在通过FileController.UploadFiles()调用jquery.ajax。FileController.UploadFiles()从数据库中获取一些数据,然后向storageAPI发送请求,storageAPI根据CustomRes
public class CustomRequest
{
public string FileBytesString { get; set; }
public string Settings { get; set; }
}
StorageAPI控制器
[HttpPost]
[ResponseType(typeof(CustomResponse))]
[Route("api/Blob/")]
public HttpResponseMessage Post(CustomRequest content)
{
if (content == null)
{
return new HttpResponseMessage(HttpStatusCode.InternalServerError);
}
//Parse data and upload file to blob.
return new HttpResponseMessage(HttpStatusCode.OK);
}
我期待着得到一些关于我在这里做错了什么的反馈
问候首先感谢您的有益评论,这些评论让我朝着正确的方向前进 我将API和Web都配置为通过Fiddler代理并查看请求,没有什么不同 然后我又开始看我发送的内容(图片),结果发现这是一个大小问题,大图片没有通过,但小图片没有。我搜索了ASP.NET应用程序的默认大小,它是4096 kB,我的一个图像比这个大 system.web部分的web.config中的这一行解决了问题
<httpRuntime targetFramework="4.5" maxRequestLength="8192"/>
这对我来说是一个很好的学习,我希望它可能会帮助其他人,这是新的发送大文件通过电线的事情
谢谢 我的第一个想法是通过邮递员或本机数据包捕获来捕获一些流量,并查看线路上发生了什么。你知道它是否没有通过(content==null)测试吗?我安装了postman,它可以正常工作(就像在swagger用户界面中一样)。因此,生成的Azure API客户端或我使用它的方式似乎有问题。您能捕获API客户端和端点之间的通信量吗?查看API客户端正在发送的通信量
<httpRuntime targetFramework="4.5" maxRequestLength="8192"/>