Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 参数值不一致-Azure API应用程序客户端调用本地IIS托管的API_C#_Ajax_Azure_Iis - Fatal编程技术网

C# 参数值不一致-Azure API应用程序客户端调用本地IIS托管的API

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

我坐了一整天,弄不明白这件事。我在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模型定制请求

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"/>