C# 如何从azure http触发器接收大型响应
我的应用程序将调用C# 如何从azure http触发器接收大型响应,c#,azure,azure-functions,httpresponse,C#,Azure,Azure Functions,Httpresponse,我的应用程序将调用http触发器来读取blob文件 当文件大小很小(大约30MB)时,我能够从http触发器接收响应。当文件大小约为160MB时,我的应用程序将收到空响应 只有在azure环境中部署Http触发器时,才会面临此问题。当从我的本地机器运行http触发器并在我的应用程序中调用本地http触发器时,工作正常 呼叫应用程序 string WebAddress = "https://MyfunctionApp.azurewebsites.net/api/Report"; //string
http触发器来读取blob文件
当文件大小很小(大约30MB)时,我能够从http触发器接收响应。当文件大小约为160MB时,我的应用程序将收到空响应
只有在azure环境中部署Http触发器时,才会面临此问题。当从我的本地机器运行http触发器并在我的应用程序中调用本地http触发器时,工作正常
呼叫应用程序
string WebAddress = "https://MyfunctionApp.azurewebsites.net/api/Report";
//string WebAddress = "http://localhost:7071/api/FIComparisonReport";
string WebServiceUri = string.Format("{0}?groupcode={1}&domicile={2}&legalstructure={3}",
WebAddress,
Uri.EscapeDataString(groupCode),
Uri.EscapeDataString(domicile),
Uri.EscapeDataString(legalStructure));
WebRequest request = WebRequest.Create(WebServiceUri);
request.Method = "GET";
request.Timeout = 360000;
WebResponse response = request.GetResponse();
var encoding = Encoding.UTF8;
string responseText = "";
using (var reader = new System.IO.StreamReader(response.GetResponseStream(), encoding))
{
responseText = reader.ReadToEnd(); // empty for large files
}
Http触发器
public static async Task<HttpResponseMessage> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestMessage req,
ILogger log)
{
//read blob to stream
MemoryStream resultSets = myfunc();
var response = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ByteArrayContent(resultSets.GetBuffer())
};
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
return response;
公共静态异步任务运行(
[HttpTrigger(AuthorizationLevel.Anonymous,“get”,“post”,Route=null)]HttpRequestMessage请求,
ILogger日志)
{
//将blob读取到流
MemoryStream resultSets=myfunc();
var响应=新的HttpResponseMessage(HttpStatusCode.OK)
{
Content=newbytearraycontent(resultSets.GetBuffer())
};
response.Content.Headers.ContentType=新的MediaTypeHeaderValue(“应用程序/八位字节流”);
返回响应;
这里缺少什么?响应大小限制为最大100 MB
运行时限制,刚刚增加到100MB
这涉及到HTTP请求,但我相信响应也有相同的限制。但是当HTTP触发器托管在我的本地机器上时,它是如何工作的,因为您的本地机器不是Azure。确切地说。如果您自己托管函数运行时(即使是在本地运行调试时也会发生这种情况),则会有不同的限制(或者通常根本没有)到位。由于Azure是一个共享且完全受管理的环境,因此需要设置某些限制。我从Azure功能返回的响应更大,甚至包括消费计划。我认为这是一个内存限制,而不是响应限制。请告诉我们更多关于您的用例的信息,也许我们可以建议稍微不同的体系结构,通常您我们不想通过http@l--我正在尝试从blob存储中读取json文件,并将其显示在asp.net gridview中。您需要查看signalr@mjwills我不认为这是重复的。这个问题与回复有关,并且与发布的相关请求问题有不同的根本原因。我无法写出一个实际的答案,但这个链接是我解决问题的方式: