C# Azure函数中的OutOfMemoryException

C# Azure函数中的OutOfMemoryException,c#,azure-functions,workday-api,C#,Azure Functions,Workday Api,我使用下面的代码从workday中提取数据,并将其存储在用户列表中进行处理: Workday_Common_HeaderType header = new Workday_Common_HeaderType(); //Fill the Workday header at your wish (omitted for code clarity) header.Include_Reference_Descriptors_In_ResponseSp

我使用下面的代码从workday中提取数据,并将其存储在用户列表中进行处理:

  Workday_Common_HeaderType header = new Workday_Common_HeaderType();
            //Fill the Workday header at your wish (omitted for code clarity)

            header.Include_Reference_Descriptors_In_ResponseSpecified = true;
            header.Include_Reference_Descriptors_In_Response = true;
            //Setting up request criteria to use Country
            var request = new Get_Workers_RequestType { version = "v33.2" };
            gremlinQueries.Clear();
            //Fill the Workday request at your wish (omitted for code clarity)
            request.Response_Filter = new Response_FilterType();
            request.Response_Group = new Worker_Response_GroupType();
            request.Response_Group.Include_Management_Chain_Data = true;
            request.Response_Group.Include_Management_Chain_DataSpecified = true;
            request.Response_Group.Include_Multiple_Managers_in_Management_Chain_DataSpecified = true;
            request.Response_Group.Include_Multiple_Managers_in_Management_Chain_Data = true;
            request.Response_Group.Include_Personal_InformationSpecified = true;
            request.Response_Group.Include_Personal_Information = true;
            request.Response_Group.Include_Employment_InformationSpecified = true;
            request.Response_Group.Include_Employment_Information = true;
            request.Response_Group.Include_RolesSpecified = true;
            //request.Response_Group.Include_Development_ItemsSpecified = true;
            //request.Response_Group.Include_Development_Items = true;
            request.Response_Group.Include_RolesSpecified = true;
            request.Response_Group.Include_Roles = true;
            request.Response_Group.Include_OrganizationsSpecified = true;
            request.Response_Group.Include_Organizations = true;
            request.Response_Group.Include_Employment_InformationSpecified = true;

            request.Response_Group.Include_Employment_Information = true;
           int totalResults = 0;
            for (int i = 1; i < totalPages; i++)
            {

                request.Response_Filter.Page = i;
                request.Response_Filter.Count = test ? 14 : 500; //500 page count per request
                //   request.Response_Group.Include_Management_Chain_Data
                request.Response_Filter.CountSpecified = true;
                request.Response_Filter.PageSpecified = true;
                //Invoke HR getworker api via Proxy 

                var workers = proxy.Get_Workers(header, request);
                if (test != true)
                    totalPages = (int)workers.Response_Results.Total_Pages + 1;
                totalResults = (int)workers.Response_Results.Total_Results;
                if (workers.Response_Data == null)
                {
                    break;
                }

                foreach (var worker in workers.Response_Data)
                {

                    User user = new User();
                    user.StillHired = worker.Worker_Data.Employment_Data.Worker_Status_Data.Active;
                    user.HireDate = worker.Worker_Data.Employment_Data.Worker_Status_Data.Hire_Date;
Workday_Common_HeaderType header=新的Workday_Common_HeaderType();
//根据您的意愿填写Workday标题(为了代码清晰起见省略)
header.Include_Reference_descriptor_In_ResponseSpecified=true;
header.Include_Reference_descriptor_In_Response=true;
//设置使用国家/地区的请求标准
var request=new Get\u Workers\u RequestType{version=“v33.2”};
gremlinkries.Clear();
//根据您的意愿填写工作日请求(为代码清晰起见省略)
request.Response_Filter=新响应_FilterType();
request.Response_Group=新工作人员_Response_GroupType();
request.Response\u Group.Include\u Management\u Chain\u Data=true;
request.Response\u Group.Include\u Management\u Chain\u DataSpecified=true;
request.Response\u Group.Include\u Multiple\u Managers\u in\u Management\u Chain\u DataSpecified=true;
request.Response\u Group.Include\u Multiple\u Managers\u in\u Management\u Chain\u Data=true;
request.Response\u Group.Include\u Personal\u InformationSpecified=true;
request.Response\u Group.Include\u Personal\u Information=true;
request.Response\u Group.Include\u Employment\u InformationSpecified=true;
request.Response\u Group.Include\u Employment\u Information=true;
request.Response_Group.Include_rollessspecified=true;
//request.Response\u Group.Include\u Development\u ItemsSpecified=true;
//request.Response\u Group.Include\u Development\u Items=true;
request.Response_Group.Include_rollessspecified=true;
request.Response\u Group.Include\u Roles=true;
request.Response\u Group.Include\u OrganizationsSpecified=true;
request.Response\u Group.Include\u Organizations=true;
request.Response\u Group.Include\u Employment\u InformationSpecified=true;
request.Response\u Group.Include\u Employment\u Information=true;
int totalResults=0;
对于(int i=1;i
现在我在本地运行它,没有任何问题,但是当我在Azure中部署它时,我在一小时后收到error outofmemory exception,而且函数状态始终为error。 函数正在使用AppServicePlan 7GB内存运行。 例外情况:


执行功能时出现异常:ExportWorkday System.OutOfMemoryException at Human_ResourcesPort.Get_Workers

您可以在Azure portal->your app service->度量中查看内存利用率

如果内存耗尽,您可以扩大服务计划或将功能应用程序移动到另一个托管计划来解决此问题


如果问题仍然存在,您可以在本地运行函数应用程序并监控内存使用情况,以查看代码本身是否存在一些问题。

这将有助于您开始了解自己的错误:您可以尝试使用横向扩展功能吗?