Activities of "DominaTang"

Answer

Hi @maiiming,

I sent you exception call stack via email.

The code disable entrance API's unit of work, because the whole process involves other resources access which might take long time, wrap data access code by unit of work at the steps need to access database.

Thanks, Domina

Question

When Angular calls API which trigger a long operational call, the entrance App Service method has [UnitOfWork(IsDisabled = true)]. This App Service call several other App Services. Within these App Services there are several places need to access/update MongdoDb, for those data access, use code below:

using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
 {
    ...
    await uow.CompleteAsync();         
}

But still MongoDb throw exception. For these App Services Methods called by entrance App Service, do I need to add [UnitOfWork(IsDisabled = true)] annotation too? Thanks,

  • ABP Framework version: v7.2.1
  • UI Type: Angular
  • Database System: MongoDB
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
  • Exception message and full stack trace: MongoDB.Driver.MongoCommandException:
   at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol`1.ProcessResponse (MongoDB.Driver.Core, Version=2.15.1.0, Culture=neutral, PublicKeyToken=null)
   at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol`1+<ExecuteAsync>d__20.MoveNext (MongoDB.Driver.Core, Version=2.15.1.0, Culture=neutral, PublicKeyToken=null)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at MongoDB.Driver.Core.Servers.Server+ServerChannel+<ExecuteProtocolAsync>d__20`1.MoveNext (MongoDB.Driver.Core, Version=2.15.1.0, Culture=neutral, PublicKeyToken=null)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at MongoDB.Driver.Core.Operations.RetryableReadOperationExecutor+&lt;ExecuteAsync&gt;d__3`1.MoveNext (MongoDB.Driver.Core, Version=2.15.1.0, Culture=neutral, PublicKeyToken=null)
 ...
   at Volo.Abp.Auditing.AuditingInterceptor+<InterceptAsync>d__2.MoveNext (Volo.Abp.Auditing, Version=7.2.1.0, Culture=neutral, PublicKeyToken=null)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1+&lt;InterceptAsync&gt;d__3`1.MoveNext (Volo.Abp.Castle.Core, Version=7.2.1.0, Culture=neutral, PublicKeyToken=null)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at Castle.DynamicProxy.AsyncInterceptorBase+<ProceedAsynchronous>d__14`1.MoveNext (Castle.Core.AsyncInterceptor, Version=2.1.0.0, Culture=neutral, 
Answer

From Angular App, console: POST https://localhost:44325/signalr-hubs/messaginghub/negotiate?negotiateVersion=1 502

From Gateway log: web-gateway_4420d4f8-1]: [13:53:47 DBG] requestId: 0HMT7TSEGNSB6:0000000D, previousRequestId: no previous request id, message: Downstream url is http://localhost:45186/signalr-hubs/messaginghub/negotiate?negotiateVersion=1 [web-gateway_4420d4f8-1]: [13:53:47 DBG] requestId: 0HMT7TSEGNSB6:0000000D, previousRequestId: no previous request id, message: IHttpRequester returned an error, setting pipeline error [web-gateway_4420d4f8-1]: [13:53:47 WRN] requestId: 0HMT7TSEGNSB6:0000000D, previousRequestId: no previous request id, message: Error Code: ConnectionToDownstreamServiceError Message: Error connecting to downstream service, exception: System.Net.Http.HttpRequestException: An error occurred while sending the request. [web-gateway_4420d4f8-1]: ---> System.IO.IOException: The response ended prematurely.

Question
  • ABP Framework version: v7.2.1 - Micro Service
  • UI Type: Angular
  • Database System: MongoDB
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes

Do you have a sample code for SignalR send message to Angular app. Angular get 502 for negociate.

In Micro Service Application module: typeof(AbpAutoMapperModule),

Configure<AbpSignalROptions>(options =>
{
    options.Hubs.AddOrUpdate(
        typeof(NotificationHub), //Hub type
        config => //Additional configuration
        {
            config.ConfigureActions.Add(hubOptions =>
            {
                //Additional options
                hubOptions.LongPolling.PollTimeout = TimeSpan.FromSeconds(30);
            });
        }
    );
});

In Gateway module:

app.UseWebSockets();
        app.UseOcelot().Wait();
        app.UseRouting()

{
      "ServiceKey": "SignalR Service",
      "DownstreamPathTemplate": "/signalr-hubs/{evertything}",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "Host": "localhost",
          "Port": 45186
        }
      ],
      "UpstreamHttpMethod": [ "POST" ],
      "UpstreamPathTemplate": "/signalr-hubs/{evertything}",
      "ReRouteIsCaseSensitive": false
    },
    {
      "ServiceKey": "SignalR Service",
      "DownstreamPathTemplate": "/signalr-hubs/{everything}",
      "ReRouteIsCaseSensitive": false,
      "DownstreamScheme": "ws",
      "DownstreamHostAndPorts": [
        {
          "Host": "localhost",
          "Port": 45186
        }
      ],
      "UpstreamPathTemplate": "/signalr-hubs/{anyHub}",
      "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE", "OPTIONS" ]
    },

Figured out the reason. It is because of wrong grand type setting (should use grand type "code", but the angular app users resource owner.

Hi Ming,

With Dev Tools, we check network traffic and cookies, current tenant's Id is null. That is why this ticket is raised. But Developer local debugging, everything seems fine.

Thanks, Domina

The abp sample code that get access token works (https://github.com/bartvanhoey/), I tested that both client credential and resource owner grant type work.

It might because the app already use Rabbit MQ as service bus. Ignore this ticket.

After deployed the application (Micro-Service template) to Azure Kubernates, Choose an tennant from login screen, however the tennantId is null while inspect the network traffic from browser. Local works fine.

Do you have any clue about the reason?

Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, and please use the search on the homepage.

If you're creating a bug/problem report, please include the followings:

  • ABP Framework version: v7.1.0
  • UI type: Angular
  • DB provider: EF Core / MongoDB
  • Tiered (MVC) or Auth Server Separated (Angular): yes
  • Exception message and stack trace:
  • Steps to reproduce the issue:"

Hi, From Azure Function, how I directly use modules within Abp Framework or need to call Micro Service API? To call API, how to get access token for API from Abp Auth Server?

Thanks

Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.

If you're creating a bug/problem report, please include followings:

  • ABP Framework version: v7.1.0
  • UI type: Angular
  • DB provider: EF Core / MongoDB
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace:
  • Steps to reproduce the issue:"
Showing 71 to 80 of 86 entries
Made with ❤️ on ABP v9.0.0-preview Updated on September 18, 2024, 12:46