Attività di "kfrancis@clinicalsupportsystems.com"

Question,

We're using the dynamic and non-dynamic forms, but we're wondering if it's possible to all the use of bootstrap horizontal forms to eliminate space after the labels:

  • ABP Framework version: v4.2.0
  • UI type: MVC
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes

Question for you,

We're well into the migration of our service from our old .NET 4.8 Webforms app (servicing 4000 users daily, oof) but we do have one complication that I'm wondering if you could help us with. The main task our app does is automate interation with a remote service. This remote service was such a pain that we developed a .net API wrapper around it and that alone has been a good source of revenue, because whoever designed that API must really hate their job. Anyways, the wrapper does a great job allowing our existing system to interact with the remote service sending and receiving thousands of files daily. The wrapper is WCF, handles creating self-signed certs to satisy the black box requirements, it's great. With our old system, we had a Windows Service that handled connecting to every account every n hours by forking a command line process that did only that and that mostly works but we want to split up sending of files from retreiving of files (our current way introduces great delay for submissions and it's not easily testable whatsoever).

Unfortunately, Microsoft in their wisdom, haven't kept WCF up with .NET 5 so we will need to find a way to allow an AsyncBackgroundJob (to send files created by users) and a AsyncPeriodicBackgroundWorkerBase to connect to that service to submit files and to check the remote service for files available for processing .. somehow.

We can implement the service in a number of ways, we've utilized: azure functions, separate processes, etc but I'm curious to see if you have any suggestions that would a) lend itself to be much more manageable in this solution and b) hopefully allow us to test at least some of it, not likely the actual remote sending but that's fine but at least the queuing and execution of these jobs/workers.

Thoughts?

  • ABP Framework version: v4.2.0 Commercial
  • UI type: MVC
  • DB provider: EF Core / ADO (custom)
  • Tiered (MVC) or Identity Server Seperated (Angular): yes
  • ABP Framework version: v4.2.0
  • UI type: MVC
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Seperated (Angular): yes
  • Exception message and stack trace:
  • Steps to reproduce the issue: N/A

Is there a way to customize how the auto api is looking at methods, or mark methods with an attribute so that we don't get the usual "Only one complex type allowed as argument to a controller" message without having to split all my app service interfaces just to remove methods that don't work with the auto api?

2021-02-01 16:07:38.495 -05:00 [INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.ProxyScripting.AbpServiceProxyScriptController.GetAll (Volo.Abp.AspNetCore.Mvc)'
2021-02-01 16:07:38.496 -05:00 [INF] AUDIT LOG: [200: GET    ] /Abp/ServiceProxyScript
- UserName - UserId                 : admin - fa5c8917-753d-f0bd-9ac6-39fa5bf3f2aa
- ClientIpAddress        : ::1
- ExecutionDuration      : 43

2021-02-01 16:07:38.496 -05:00 [ERR] An unhandled exception has occurred while executing the request.
Volo.Abp.AbpException: Only one complex type allowed as argument to a controller action that's binding source is 'Body'. But SaveReportContentAsync (api/app/generatedreport/{id}) contains more than one!
   at Volo.Abp.Http.ProxyScripting.Generators.ProxyScriptingHelper.GenerateBody(ActionApiDescriptionModel action)
   at Volo.Abp.Http.ProxyScripting.Generators.JQuery.JQueryProxyScriptGenerator.AddAjaxCallParameters(StringBuilder script, ActionApiDescriptionModel action)
   at Volo.Abp.Http.ProxyScripting.Generators.JQuery.JQueryProxyScriptGenerator.AddActionScript(StringBuilder script, String controllerName, ActionApiDescriptionModel action, String normalizedActionName)
   at Volo.Abp.Http.ProxyScripting.Generators.JQuery.JQueryProxyScriptGenerator.AddControllerScript(StringBuilder script, ControllerApiDescriptionModel controller)
   at Volo.Abp.Http.ProxyScripting.Generators.JQuery.JQueryProxyScriptGenerator.AddModuleScript(StringBuilder script, ModuleApiDescriptionModel module)
   at Volo.Abp.Http.ProxyScripting.Generators.JQuery.JQueryProxyScriptGenerator.CreateScript(ApplicationApiDescriptionModel model)
   at Volo.Abp.Http.ProxyScripting.ProxyScriptManager.CreateScript(ProxyScriptingModel scriptingModel)
   at Volo.Abp.Http.ProxyScripting.ProxyScriptManager.<>c__DisplayClass6_0.<GetScript>b__0()
   at System.Collections.Generic.AbpDictionaryExtensions.<>c__DisplayClass6_0`2.&lt;GetOrAdd&gt;b__0(TKey k)
   at System.Collections.Generic.AbpDictionaryExtensions.GetOrAdd[TKey,TValue](IDictionary`2 dictionary, TKey key, Func`2 factory)
   at System.Collections.Generic.AbpDictionaryExtensions.GetOrAdd[TKey,TValue](IDictionary`2 dictionary, TKey key, Func`1 factory)
   at Volo.Abp.Http.ProxyScripting.ProxyScriptManagerCache.GetOrAdd(String key, Func`1 factory)
   at Volo.Abp.Http.ProxyScripting.ProxyScriptManager.GetScript(ProxyScriptingModel scriptingModel)
   at Volo.Abp.AspNetCore.Mvc.ProxyScripting.AbpServiceProxyScriptController.GetAll(ServiceProxyGenerationModel model)
   at lambda_method1950(Closure , Object , Object[] )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeNextResourceFilter()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at Volo.Abp.AspNetCore.Serilog.AbpSerilogMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
   at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
   at Volo.Abp.AspNetCore.Auditing.AbpAuditingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
   at Volo.Abp.AspNetCore.Auditing.AbpAuditingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
   at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at Volo.Abp.AspNetCore.MultiTenancy.MultiTenancyMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
   at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.RequestLocalization.AbpRequestLocalizationMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
   at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
2021-02-01 16:07:38.497 -05:00 [INF] Request finished HTTP/2 GET https://localhost:44311/Abp/ServiceProxyScript - - - 500 - text/plain 45.2770ms
21 - 23 di 23
Made with ❤️ on ABP v8.2.0-preview Updated on marzo 25, 2024, 15:11