HodorNV / ALOps

ALOps
59 stars 24 forks source link

ALOpsExtension API: The request's Content-Length 42547164 is larger than the request body size limit 30000000 #562

Closed petertijsma closed 2 years ago

petertijsma commented 2 years ago

When updating one of the apps we use, we get the following error when we deploy it through the ALOpsExtension API:

The request's Content-Length 42547164 is larger than the request body size limit 30000000

image

I think this is a limitation in the API Endpoint in Business Central and is most probably configurable, but i can't find it anywhere in the CustomSettings.config, nor in the docs: https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/configure-server-instance

When using the cough 'Manual' PowerShell CmdLets, it installs without issues.

Any idea where this limitation setting of 30000000 is to be configured/changed?

And yes, it might be a big app, but that should not be a problem right?

image

waldo1001 commented 2 years ago

ou are correct - the ALOpsExtensionAPI is using the automation API - the error you get back, is from this API.

I'm not aware of where to set up something like that .. if possible.

These are all server settings - but nothing that seems to be refurring to that size:

´´´ key value


ALCompatibleDateFormatCultureList ALFunctionTimingEnabled true ALLongRunningFunctionTracingThresholdForApplicationInsights 10000 AllowReadingCrossTenantApplicationDatabaseTables false AllowSessionCallSuspendWhenWriteTransactionStarted true AllowSessionWhileSyncAndDataUpgrade false AmountOfSqlStatementsInDebugger 10 ApiServicesEnabled True ApiSubscriptionDelayTime 30000 ApiSubscriptionExpiration 3 ApiSubscriptionMaxNumberOfNotifications 100 ApiSubscriptionMaxNumberOfSubscriptions 200 ApiSubscriptionNotificationUrlTimeout 5000 ApiSubscriptionsEnabled true ApiSubscriptionSendingNotificationTimeout 30000 AppIdUri ApplicationInsightsConnectionString ApplicationInsightsInstrumentationKey AzureActiveDirectoryClientCertificateThumbprint AzureActiveDirectoryClientId AzureActiveDirectoryClientSecret AzureKeyVaultAppSecretsPublisherValidationEnabled true AzureKeyVaultClientCertificateStoreLocation LocalMachine AzureKeyVaultClientCertificateStoreName My AzureKeyVaultClientCertificateThumbprint AzureKeyVaultClientId 00000000-0000-0000-0000-000000000000 AzureKeyVaultKeyUri BackgroundSessionsDefaultTimeout 08:00:00 BackgroundSessionsDefaultWaitTimeout 08:00:00 BackgroundSessionsMaxConcurrent 10 BackgroundSessionsMaxQueued 100 BufferedInsertEnabled true CalendarTwoDigitYearMax -1 ChildSessionsMaxConcurrency 5 ChildSessionsMaxQueueLength 100 ClientBuildRestriction WarnClient ClientServicesAllowedFileTypes ClientServicesChunkSize 28 ClientServicesCompressionThreshold 64 ClientServicesCredentialType NavUserPassword ClientServicesEnabled true ClientServicesFederationMetadataLocation ClientServicesIdleClientTimeout MaxValue ClientServicesKeepAliveInterval 00:02:00 ClientServicesMaxConcurrentConnections 500 ClientServicesMaxItemsInObjectGraph 512 ClientServicesMaxNumberOfOrphanedConnections 20 ClientServicesMaxUploadSize 350 ClientServicesOperationTimeout MaxValue ClientServicesPort 7046 ClientServicesProhibitedFileTypes ade;adp;asp;bas;bat;chm;cmd;com;cpl;csh;exe;fxp;gadget;hlp;hta;inf;ins;isp;its;js;jse;ksh;lnk;mad;maf;mag;mam;maq;mar;mas;mat;mau;mav;maw;mda;mdb;mde;mdt;mdw;mdz;msc;msi;ms... ClientServicesProtectionLevel EncryptAndSign ClientServicesReconnectPeriod 00:10:00 ClientServicesTokenSigningKey DatabaseInstance SQLEXPRESS DatabaseName CRONUS DatabaseServer localhost DataCacheSize 10 DebuggingAllowed true DefaultClient Web DefaultLanguage DefaultTaskSchedulerSessionTimeout 12:00:00 DeltaServiceClientTimeout 00:02:00 DeveloperServicesEnabled true DeveloperServicesMaxRequestLength 419430400 DeveloperServicesPort 7049 DeveloperServicesSSLEnabled false DisableQueryHintForceOrder true DisableQueryHintLoopJoin true DisableQueryHintOptimizeForUnknown true DisableSmartSql false DisableTokenSigningCertificateValidation false DisableWriteInsideTryFunctions true EnableALServerFileAccess true EnableApplicationChannelLog true EnableCloudReplicationMaintenance false EnableDataExportImport true EnableDeadlockMonitoring false EnableDebugging false EnableExclusiveApplicationPackageRole true EnableExclusiveExistsCheckOnModify false EnableFullALFunctionTracing false EnableLockTimeoutMonitoring false EnableLongRunningSqlStatementsInDebugger true EnableMembershipEntitlement EnableMultithreadedCompilation true EnablePartialRecords true EnableProfileCacheSynchronization false EnableSaasExtensionInstall true EnableSaveFromReportPreview true EnableSaveToExcelForRdlcReports true EnableSaveToWordForRdlcReports true EnableSqlConnectionEncryption false EnableSqlInformationDebugger true EnableSqlQueryTopParameterization false EnableSqlReadOnlyReplicaSupport false EnableSymbolLoadingAtServerStartup False EnableTaskScheduler True EnableUserConsistencyValidationOnTasks true EncryptionProvider LocalKeyFile ExcelAddInAzureActiveDirectoryClientId ExchangeAuthenticationMetadataLocation ExtendedSecurityTokenLifetime 0 ExtensionAllowedTargetLevel Internal ExternalTraceLevel Error GlobalSymbolReferenceCacheSize 200 GlobalSymbolReferenceCacheTTLInHours 24 IntegrationRecordsTableId 5151 LegacyOptionCaptionResolution false LockoutPolicyFailedAuthenticationCount 0 LockoutPolicyFailedAuthenticationWindow 0 LongRunningSqlStatementsInDebuggerThreshold 500 ManagementServicesEnabled true ManagementServicesIdleClientTimeout 10:00:00 ManagementServicesPort 7045 MaxConcurrentCalls 1000 MaximumSessionRecursionDepth 14 MaxRowsToExportToExcel MaxValue MaxStreamReadSize 1000000 Multitenant False NASServicesEnableDebugging false NASServicesRunWithAdminRights false NASServicesStartupArgument NASServicesStartupCodeunit NASServicesStartupMethod NavHttpClientMaxResponseContentSize 150 NavHttpClientMaxTimeout 00:05:00 NetworkProtocol Default NonInteractiveSessionsLogRetainInterval 5.00:00:00 ODataEnableExcelAddInAnnotations true ODataMaxConnections 0 ODataMaxConnectionsPerTenant 0 ODataReadonlyGetDisabledForObjects [] ODataReadonlyGetEnabled true ODataServicesEnabled true ODataServicesMaxPageSize 20000 ODataServicesOperationTimeout 00:08:00 ODataServicesPort 7048 ODataServicesSSLEnabled false ODataServicesV4EndpointEnabled true ODataV4MaxConcurrentRequests 5 ODataV4MaxRequestQueueSize 95 OverwriteExistingTranslations true PageBackgroundTaskAllowedAutomationMethods (Update,Microsoft.Dynamics.Nav.Client.BusinessChart;PublicKeyToken=31bf3856ad364e35) PageBackgroundTaskDefaultTimeout 00:02:00 PageBackgroundTaskMaxTimeout 00:10:00 ProhibitedReportServerPrinters ["Microsoft Print to PDF","Microsoft XPS Document Writer"] PTESymbolReferenceCacheSize 700 PTESymbolReferenceCacheTTLInHours 24 PublicODataBaseUrl http://bccurrent:7048/BC/OData PublicSOAPBaseUrl http://bccurrent:7047/BC/WS/ PublicWebBaseUrl http://bccurrent/BC/ PublicWinBaseUrl DynamicsNAV://bccurrent:7046/BC/ QueryMaxRows MaxValue QueryTimeout MaxValue ReplaceReportExecutionTimeWithClientTime true ReportAppDomainIsolation true ReportDefaultMaxDocuments 200 ReportDefaultMaxRows 500000 ReportDefaultTimeout 06:00:00 ReportingServiceEstablishConnectionTimeout 00:00:05 ReportingServiceIsSideService true ReportingServicePort 0 ReportMaxDocuments 500 ReportMaxRows 10000000 ReportPDFFontEmbedding true ReportTimeout 12:00:00 RequiredExtensions SamplingProfilingEnabled true SearchTimeout 00:00:10 SecurityProtocol Tls12 ServerInstance BC ServicesCertificateThumbprint BA9CF18371B4C972B8E891E26AB8EBE9B5FCC7DF ServicesCertificateValidationEnabled false ServicesDefaultCompany ServicesDefaultTimeZone UTC ServicesLanguage en-US ServicesOptionFormat OptionCaption ServicesUseNTLMAuthentication false SessionEventTableRetainInterval 90.00:00:00 SnapshotDebuggerEnabled true SnapshotDebuggerServicesPort 7083 SnapshotDebuggerServicesSSLEnabled false SOAPMaxConcurrentRequests 5 SOAPMaxConnections 0 SOAPMaxConnectionsPerTenant 0 SOAPMaxRequestQueueSize 95 SOAPServicesEnabled true SOAPServicesMaxMsgSize 65536 SOAPServicesOperationTimeout 00:10:00 SOAPServicesPort 7047 SOAPServicesSSLEnabled false SolutionVersionExtension 00000000-0000-0000-0000-000000000000 SqlBulkImportBatchSize 448 SqlCommandTimeout 00:30:00 SqlConnectionIdleTimeout 00:05:00 SqlConnectionTimeout 00:01:30 SqlLockTimeoutOverride 0 SqlLongRunningThreshold 750 SqlLongRunningThresholdForApplicationInsights 750 SqlManagementCommandTimeout -1 SqlTracingAllowed true SupportedLanguages TaskSchedulerExecutionRetryExceptions NavAppObjectMetadataException;NavAdministratorMadeChangesException TaskSchedulerMaximumConcurrentRunningTasks 5 TaskSchedulerSystemTaskEndTime 23:59:59 TaskSchedulerSystemTaskStartTime 00:00:00 TenantEnvironmentType Sandbox TestAutomationEnabled true TokenSigningCertificateValidationMode IssuerNameValidation TraceLevel Normal TrustSQLServerCertificate false UIElementRemovalOption LicenseFileAndUserPermissions UnsupportedLanguageIds 1034 UseFindMinusWhenPopulatingPage true UseIncrementalCompanyDelete false UsePermissionSetsFromExtensions true UseSimplifiedFilters false ValidAudiences WSFederationLoginEndpoint XmlMetadataCacheSize 500 ´´´

petertijsma commented 2 years ago

But strange thing is that this app can simply be installed on BC Cloud without issues (size might slightly differ, but at least larger then the approximate 28,6 MB)

Could there be a difference between the APIV1 and APIV2 versions? (Just thinking out loud, probably doesn't make any sense)

Also saw something on the net about a default size limit of this exact figure in IIS, but as far as I know, IIS is not involved here.

waldo1001 commented 2 years ago

I don't think the app itself is being refused, just the medium that is being used to get the app in the Upload-table (uploading the app through the client is a different medium as uploading the app through the API).

waldo1001 commented 2 years ago

We just tested and indeed, there is a limitation on size, but nothing we can do to fix that as there is not some kind of MaxSettingsSize for API calls .. 🤷‍♂️

waldo1001 commented 2 years ago

But strange thing is that this app can simply be installed on BC Cloud without issues (size might slightly differ, but at least larger then the approximate 28,6 MB)

Are you sure you tried this through the API, and not the upload page on SaaS? There is a very big difference between the two.

petertijsma commented 2 years ago

But strange thing is that this app can simply be installed on BC Cloud without issues (size might slightly differ, but at least larger then the approximate 28,6 MB)

Are you sure you tried this through the API, and not the upload page on SaaS? There is a very big difference between the two.

Hmm, the initial version is of course installed through the AppSource page, but updates are installed through the Api right?

Nevertheless, I've also put it on Yammer: https://www.yammer.com/dynamicsnavdev/#/Threads/show?threadId=1896622112063488

waldo1001 commented 2 years ago

@petertijsma ,

If I remember correctly, you confirmed during BCTechDays that Microsoft is looking into this issue?

petertijsma commented 2 years ago

Yes Microsoft will fix this in the next CU, so for 20 in cu6

petertijsma commented 2 years ago

https://www.yammer.com/dynamicsnavdev/threads/1896622112063488?message_id=1896622112063488

Screenshot_20220927_175243

petertijsma commented 2 years ago

O, I forgot to mention how this is solved:

It will be fixed with the introduction of the ODataMaxBodySize server setting, which has the default value of 350 MB in SaaS