When I visit https://nuget.telerik.com/v3/package/volo.abp.studio.cli/index.json address, I am being asked for a basic authentication user.
Where the heck the telerik came from?
Can you advise me asap?
Hello
I am experiencing a strange behaviour when using abp generate-proxy cli command.
Below there is a few lines of codes;
//towns service contract public interface ITownsAppService : ICrudAppService<TownDto, Guid, GetTownsInput, TownCreateDto, TownUpdateDto>, ILookupService { }
//my lookup service interface public interface ILookupService { Task<PagedResultDto<LookupDto<Guid>>> GetListAsLookupAsync(LookupRequestDto input); }
//towns service implementation public class TownsAppService : CrudAppService<Town, TownDto, Guid, GetTownsInput, TownCreateDto, TownUpdateDto>, ITownsAppService {...}
//towns service controller [RemoteService(Name = MasterServiceRemoteServiceConsts.RemoteServiceName)] [Area("master-service")] [ControllerName("Town API")] [ApiVersion("1.0")] [Route("api/master-service/towns")] public class TownController : AbpController, ITownsAppService {...}
when i run the following command; abp generate-proxy -t csharp -u https://localhost:xxx/ -m master-service --without-contracts
Proxy codes are generated for ILookupsService not for ITownsAppService, as you can see my controller and my service implemtation inherits ITownsAppService directly and ILookupService indirectly.
[Dependency(ReplaceServices = true)] [ExposeServices(typeof(ILookupService), typeof(TownClientProxy))] public partial class TownClientProxy : ClientProxyBase<ILookupService>, ILookupService
So when i try to access ITownsAppService, i got interface not implemented error as you can figure out.
If I rename ILookupService to ILookupAdaptor, proxy generation skips to generate proxy files for towns. No output created.
Is there a way to fix this issue?
Murat Gürer
Hello.
When I use the token endpoint to get auth token using specific client with client_credentials grant_type, the related OpenIddictApplication entity gets updated. When I check the db, I see changes only in concurrencystamp and lastmodificationtime columns. All other columns remains unchanged. Every time I use token endpoint, an update for the application record gets sent to db.
In my application there are too many clients (more than thounsands) trying to get auth token for their apps and some users fall into concurreny exceptions because they try to get token at almost same time. Because there is no meaningful data change in the applicaiton record(only lastmodiftime), I want to prevent this table to get updated during token requests.
Do you have any suggestions for that?
Thanks. Murat
I have just intalled new abp cli using the command below;
dotnet tool install -g Volo.Abp.Studio.Cli
Now I get following error when I type abp in command window.
abp --version
[08:33:46 INF] ABP CLI 0.7.4 (Beta)
[08:33:46 INF] You are running the second generation of the ABP CLI. If you're interested in the legacy CLI, see https://abp.io/new-cli
NuGet.Protocol.Core.Types.FatalProtocolException: Failed to retrieve information about 'Volo.Abp.Studio.Cli' from remote
source 'https://nuget.telerik.com/v3/package/volo.abp.studio.cli/index.json'.
System.Net.Http.HttpRequestException: Response status code does not indicate success: 401 (Unauthorized).
at HttpResponseMessage System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
at void NuGet.Protocol.HttpSource.<>c__DisplayClass15_01.<<GetAsync>b__0>d.MoveNext() at async Task<T> NuGet.Common.ConcurrencyUtilities.ExecuteWithFileLockedAsync<T>(string filePath, Func<CancellationToken, Task<T>> action, CancellationToken token) at async Task<T> NuGet.Common.ConcurrencyUtilities.ExecuteWithFileLockedAsync<T>(string filePath, Func<CancellationToken, Task<T>> action, CancellationToken token) at async Task<T> NuGet.Protocol.HttpSource.GetAsync<T>(HttpSourceCachedRequest request, Func<HttpSourceResult, Task<T>> processAsync, ILogger log, CancellationToken token) at async Task<SortedDictionary<NuGetVersion, PackageInfo>> NuGet.Protocol.HttpFileSystemBasedFindPackageByIdResource.FindPackagesByIdAsync(string id, SourceCacheContext cacheContext, ILogger logger, CancellationToken cancellationToken) at async Task<SortedDictionary<NuGetVersion, PackageInfo>> NuGet.Protocol.HttpFileSystemBasedFindPackageByIdResource. FindPackagesByIdAsync(string id, SourceCacheContext cacheContext, ILogger logger, CancellationToken cancellationToken) at async Task<SortedDictionary<NuGetVersion, PackageInfo>> NuGet.Protocol.HttpFileSystemBasedFindPackageByIdResource. EnsurePackagesAsync(string id, SourceCacheContext cacheContext, ILogger logger, CancellationToken cancellationToken ) at async Task<IEnumerable<NuGetVersion>> NuGet.Protocol.HttpFileSystemBasedFindPackageByIdResource.GetAllVersionsAsync (string id, SourceCacheContext cacheContext, ILogger logger, CancellationToken cancellationToken) at async Task<SortedSet<NuGetVersion>> Volo.Abp.Studio.Nuget.NugetPackageManager.FindVersionsAsync(string packageId, bool includeNightly) at async Task<NuGetVersion> Volo.Abp.Studio.Nuget.NugetPackageManager.FindLatestVersionAsync(string packageId, bool includeNightly, bool includeReleaseCandidates) at async Task<NuGetVersion> Volo.Abp.Studio.Nuget.NugetPackageManager.GetLatestVersionAsync(string packageId, bool includeNightly, bool includeReleaseCandidates) at async Task Volo.Abp.Studio.Cli.StudioCliService.CheckCliVersionAsync(CommandLineArgs commandLineArgs, SemanticVersion currentCliVersion) at async Task Volo.Abp.Studio.Cli.StudioCliService.RunAsync(string[] args) Unhandled exception. NuGet.Protocol.Core.Types.FatalProtocolException: Failed to retrieve information about 'Volo.Abp.Studio.Cli' from remote source 'https://nuget.telerik.com/v3/package/volo.abp.studio.cli/index.json'. ---> System.Net.Http.HttpRequestException: Response status code does not indicate success: 401 (Unauthorized). at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode() at NuGet.Protocol.HttpSource.<>c__DisplayClass15_0
1.<<GetAsync>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at NuGet.Common.ConcurrencyUtilities.ExecuteWithFileLockedAsync[T](String filePath, Func2 action, CancellationToken token) at NuGet.Common.ConcurrencyUtilities.ExecuteWithFileLockedAsync[T](String filePath, Func
2 action, CancellationToken token)
at NuGet.Protocol.HttpSource.GetAsync[T](HttpSourceCachedRequest request, Func`2 processAsync, ILogger log, CancellationToken token)
at NuGet.Protocol.HttpFileSystemBasedFindPackageByIdResource.FindPackagesByIdAsync(String id, SourceCacheContext cacheContext, ILogger logger, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at NuGet.Protocol.HttpFileSystemBasedFindPackageByIdResource.FindPackagesByIdAsync(String id, SourceCacheContext cacheContext, ILogger logger, CancellationToken cancellationToken)
at NuGet.Protocol.HttpFileSystemBasedFindPackageByIdResource.EnsurePackagesAsync(String id, SourceCacheContext cacheContext, ILogger logger, CancellationToken cancellationToken)
at NuGet.Protocol.HttpFileSystemBasedFindPackageByIdResource.GetAllVersionsAsync(String id, SourceCacheContext cacheContext, ILogger logger, CancellationToken cancellationToken)
at Volo.Abp.Studio.Nuget.NugetPackageManager.FindVersionsAsync(String packageId, Boolean includeNightly)
at Volo.Abp.Studio.Nuget.NugetPackageManager.FindLatestVersionAsync(String packageId, Boolean includeNightly, Boolean includeReleaseCandidates)
at Volo.Abp.Studio.Nuget.NugetPackageManager.GetLatestVersionAsync(String packageId, Boolean includeNightly, Boolean includeReleaseCandidates)
at Volo.Abp.Studio.Cli.StudioCliService.CheckCliVersionAsync(CommandLineArgs commandLineArgs, SemanticVersion currentCliVersion)
at Volo.Abp.Studio.Cli.StudioCliService.RunAsync(String[] args)
at Volo.Abp.Studio.Cli.Program.RtRr72CxI(Object )
at Volo.Abp.Studio.Cli.Program.
When I visit https://nuget.telerik.com/v3/package/volo.abp.studio.cli/index.json address, I am being asked for a basic authentication user.
Where the heck the telerik came from?
Can you advise me asap?
Hello,
I have just upgraded my v8.02 solution to v8.2.0
I exprerience a strange problem on all versions after v8.0.2. The versions below also does not produce such problem.
When I try to complete a unitofwork by call completeasync() method, the methods falls into a loop and never returns. In each loop LocalEvents collection gets filled with one item although collection is cleared in previous loop.
When I checked the unitofwork source code and commented out the second call to SaveChangesAsync method, everything seems to work fine. I know this change has serious drawbacks, but I could not figure out another solution.
Below is the code (abp's unitofwork.cs) that I altered;
public virtual async Task CompleteAsync(CancellationToken cancellationToken = default)
{
if (_isRolledback)
{
return;
}
PreventMultipleComplete();
try
{
_isCompleting = true;
await SaveChangesAsync(cancellationToken);
while (LocalEvents.Count != 0 || DistributedEvents.Count != 0)
{
if (LocalEvents.Count != 0)
{
var localEventsToBePublished = LocalEvents.OrderBy(e => e.EventOrder).ToArray();
LocalEvents.Clear();
await UnitOfWorkEventPublisher.PublishLocalEventsAsync(
localEventsToBePublished
);
}
if (DistributedEvents.Count != 0)
{
var distributedEventsToBePublished = DistributedEvents.OrderBy(e => e.EventOrder).ToArray();
DistributedEvents.Clear();
await UnitOfWorkEventPublisher.PublishDistributedEventsAsync(
distributedEventsToBePublished
);
}
//This is the place where I commented out.
//await SaveChangesAsync(cancellationToken);
}
await CommitTransactionsAsync(cancellationToken);
IsCompleted = true;
await OnCompletedAsync();
}
catch (Exception ex)
{
_exception = ex;
throw;
}
}
Here is the test service method that I used to trigger the problem during my debug session;
[AllowAnonymous]
[UnitOfWork(IsDisabled = true)]
public async Task<string> TestAsync(Guid id)
{
try
{
var message = await _messageRepository.FindAsync(id);
if (message == null)
return "null";
message.SetTitle(message.Title + "!");
await _messageRepository.UpdateAsync(message, true);
return message.Title;
}
catch (Exception e)
{
return e.Message + " -- " + e.InnerException?.Message;
}
}
During my test above, data gets updated in db but the method never returns back to caller. I even tested by creating a new unitofwork instance using unitofworkmanager and manually triggering the completeasync method as described in your unitofwork documentation.
Can you advice me a solution for my problem?
Thanks Murat
Hello,
I have created a new microservice project using the command below;
abp new BookStore -t microservice-pro -u blazor-webapp
The solution created successfully and there exists two projects in solution named BookStore.Blazor and BookStore.Blazor.Client
I also checked the following documentation;
https://docs.abp.io/en/abp/8.2/Migration-Guides/Abp-8-2-Blazor-Web-App#create-a-new-blazor-web-app
There is no project named xxx.Blazor.WebApp and xxx.Blazor.WebApp.Client as described in the document.
I assumed that xxx.Blazor.WebApp is the BookStore.Blazor project and xxx.Blazor.WebApp.Client is the BookStore.Blazor.Client in my solution. I tried to apply the steps described in the document depending on this assumption.
The steps described in the document does not seem to fit the files in the blazor projects in my solution.
For example there is no XXModule.cs in the BookStore.Blazor project but the document expects me apply some changes in the file.
So I applied the changes in client project. But for my oppinion, in the BookStore.Blazor.Client/BookStoreBlazorClientModule I expect the steps to be already applied as in the document since I have created a new microservice solution, there should be no migration need as described in document. I tried to apply the steps to this document, added PreConfigureServices method, altered ConfigureAuthentication, ran the abp bundle command, altered App.razor to share the access;_token etc.
The result is failure. These are the errors in console, when I tried to launch Blazor app in the chrome browser.
1 * Uncaught ReferenceError: bootstrap is not defined at 306 (VM63 global.js:39:71902) at n (VM63 global.js:39:72011) at 12 (VM63 global.js:39:19279) at n (VM63 global.js:39:72011) at 848 (VM63 global.js:39:32941) at n (VM63 global.js:39:72011) at 524 (VM63 global.js:39:18999) at n (VM63 global.js:39:72011) at VM63 global.js:39:72378 at VM63 global.js:39:72396
2 * crit: Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100] Unhandled exception rendering component: Could not find 'resetLeptonXToolbar' ('resetLeptonXToolbar' was undefined). Error: Could not find 'resetLeptonXToolbar' ('resetLeptonXToolbar' was undefined). at https://localhost:44307/_framework/blazor.web.js:1:734 at Array.forEach (<anonymous>) at l.findFunction (https://localhost:44307/_framework/blazor.web.js:1:702) at b (https://localhost:44307/_framework/blazor.web.js:1:5445) at https://localhost:44307/_framework/blazor.web.js:1:3238 at new Promise (<anonymous>) at y.beginInvokeJSFromDotNet (https://localhost:44307/_framework/blazor.web.js:1:3201) at Object.ri [as invokeJSJson] (https://localhost:44307/_framework/blazor.web.js:1:165152) at https://localhost:44307/_framework/dotnet.runtime.8.0.6.qp5p9if9yx.js:3:178364 at Tl (https://localhost:44307/_framework/dotnet.runtime.8.0.6.qp5p9if9yx.js:3:179198) Microsoft.JSInterop.JSException: Could not find 'resetLeptonXToolbar' ('resetLeptonXToolbar' was undefined). Error: Could not find 'resetLeptonXToolbar' ('resetLeptonXToolbar' was undefined). at https://localhost:44307/_framework/blazor.web.js:1:734 at Array.forEach (<anonymous>) at l.findFunction (https://localhost:44307/_framework/blazor.web.js:1:702) at b (https://localhost:44307/_framework/blazor.web.js:1:5445) at https://localhost:44307/_framework/blazor.web.js:1:3238 at new Promise (<anonymous>) at y.beginInvokeJSFromDotNet (https://localhost:44307/_framework/blazor.web.js:1:3201) at Object.ri [as invokeJSJson] (https://localhost:44307/_framework/blazor.web.js:1:165152) at https://localhost:44307/_framework/dotnet.runtime.8.0.6.qp5p9if9yx.js:3:178364 at Tl (https://localhost:44307/_framework/dotnet.runtime.8.0.6.qp5p9if9yx.js:3:179198) at Microsoft.JSInterop.JSRuntime.<InvokeAsync>d__16`1[[Microsoft.JSInterop.Infrastructure.IJSVoidResult, Microsoft.JSInterop, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]].MoveNext() at Microsoft.JSInterop.JSRuntimeExtensions.InvokeVoidAsync(IJSRuntime jsRuntime, String identifier, Object[] args) at Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXTheme.Components.ApplicationLayout.SideMenu.Navigation.MobileWasmNavbar.SetMenuAndProfileAsync() at Volo.Abp.AspNetCore.Components.Web.LeptonXTheme.Components.ApplicationLayout.SideMenu.Navigation.MobileNavbar.OnInitializedAsync() at Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXTheme.Components.ApplicationLayout.SideMenu.Navigation.MobileWasmNavbar.OnInitializedAsync() at Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync() at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)
3 *
blazor.web.js:1 crit: Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100] Unhandled exception rendering component: Could not find 'initLeptonX' ('initLeptonX' was undefined). Error: Could not find 'initLeptonX' ('initLeptonX' was undefined). at https://localhost:44307/_framework/blazor.web.js:1:734 at Array.forEach (
I guess the steps in the migration document is not properly applicable for microservice projects.
So, how can I test the blazor-webapp in microservice projects?
Thanks Murat Gürer
We are using abp framework microservice template and we already have about 20 microservices. Postgresql is our db system. When there are 1000+ active users, microservices loses connection to administration db. We face db timeouts on administration db, and microservices stops responding when connection to administration db fails. We have optimized the indexes on tables so that cpu, ram etc. compsumptions seem stable on db server, still we could not fix the timeout on administration db. The index usage on db seems fine (especially on administration db), and table scan on queries almost never occur. Queries takes the advantage of indexes on tables. There are more than 500K users on identity users table. OpenIdTokens, AuditLogs, PermissionGrants tables have almost 1.5M rows (each).
Do you have any suggestions to optimize the application on high load? Especially authserver and administration services fails to respond on high load. Because the identity, saas and administration microservices and databases are core essential part of the framework, we are somehow can not figure out why this core elements stuck on high load. We are also ready to purchase a detailed technical assistance from Abp team if possible.
We will be glad for any assistance.
Thanks Murat Gürer
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: