Activities of "epieters"

Oh, but you didn't answer my question :-) Where should this code go? In each specific file? Can you please give an example?

ah OK. Thanks. We will upgrade soon.

  • ABP Framework version: v8.2
  • UI Type: MVC
  • Database System: EF Core (SQL Server)
  • Tiered (for MVC) or Auth Server Separated (for Angular): no
  • Exception message and full stack trace:
  • Steps to reproduce the issue:

It's not clear how and where to define the next and previous pages. Is this done in the doc-nav.json or in the page itself? Is this on the item itself?

Hi,

Is there a specific reason why the initial catalog is replaced by master? in the connectionstring checker? https://github.com/abpframework/abp/blob/b23affb0ed225f020dc7b66aebc208acd71a1c01/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo/Abp/EntityFrameworkCore/ConnectionStrings/SqlServerConnectionStringChecker.cs#L20-L21

Managed identities should not have access to master, they are database scoped credentials and only need to have access to the Database (or Initial Catalog) passed in the connectionstring.

Hi,

We are sending our errors to Azure Application Insights, so we don't have a logfile.

BUT, it's even more weird: The test actually fails, but when hitting save, the database gets created. So there is definitely something wrong with that connection string check that doesn't take into account valid connectionstrings using Managed Identity syntax.

Hi Li,

I don't believe you are answering my questions.

The error is a result of pushing the Check button:

The content I use is: Server=tcp:XXXXX-europe-1.database.windows.net;Authentication=Active Directory Default; Database=XXXXXX-dev-europe;

As you might know, www.connectionstrings.com does not give a good example of using System Assigned Managed Identity with SQL Azure

But on the Microsoft website there are some good instructions on how to setup Managed Identity with App Service. https://learn.microsoft.com/en-us/azure/app-service/tutorial-connect-msi-sql-database?tabs=windowsclient%2Cefcore%2Cdotnet#3-modify-your-project

And I'm using the connectionstring as defined in the example: "Server=tcp:<server-name>.database.windows.net;Authentication=Active Directory Default; Database=<database-name>;"

So my questions are still:

  • What am I missing?
  • Which validations are done by the ABP Framework (Commercial) that I'm getting an error saying that my connectionstring is not valid? Its seems to come from Volo.Saas.Host.TenantAppService.CheckConnectionStringAsync(String connectionString)

I would appreciate if you can give this some thoughts.

  • ABP Framework version: v8.2 Commercial + SaaS module

  • UI Type: MVC

  • Database System: EF Core (SQL Server)

  • Tiered (for MVC) or Auth Server Separated (for Angular): no

  • Exception message and full stack trace: at System.Data.Common.DbConnectionOptions.GetKeyValuePair(String connectionString, Int32 currentPosition, StringBuilder buffer, Boolean useOdbcRules, String& keyname, String& keyvalue) at System.Data.Common.DbConnectionOptions.ParseInternal(Dictionary2 parsetable, String connectionString, Boolean buildChain, Dictionary2 synonyms, Boolean firstKey) at System.Data.Common.DbConnectionOptions..ctor(String connectionString, Dictionary2 synonyms, Boolean useOdbcRules) at System.Data.Common.DbConnectionStringBuilder.set_ConnectionString(String value) at Microsoft.Data.SqlClient.SqlConnectionStringBuilder..ctor(String connectionString) at Volo.Abp.EntityFrameworkCore.ConnectionStrings.SqlServerConnectionStringChecker.CheckAsync(String connectionString) at Volo.Saas.Host.TenantAppService.CheckConnectionStringAsync(String connectionString) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Authorization.AuthorizationInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.GlobalFeatures.GlobalFeatureInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Auditing.AuditingInterceptor.ProceedByLoggingAsync(IAbpMethodInvocation invocation, AbpAuditingOptions options, IAuditingHelper auditingHelper, IAuditLogScope auditLogScope) at Volo.Abp.Auditing.AuditingInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Validation.ValidationInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at lambda_method11563(Closure, Object) at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.

  • Steps to reproduce the issue: I have my application deployed on an Azure App Service. My App Service Managed Identity is added to the database (ddl_admin, reader & writer) I want one of my tenants on a separate database. I've entered the following connection string: Server=

I'm getting an error: Format of the initialization string does not conform to specification starting at index 136. What am I missing? What are the validations that are done on the connectionstring? I've also tried with Authentication=Active Directory Default.

This is still not fixed, so I want to re-open the ticket. I will try to redeploy on a new Azure Web Services instance. Nevertheless, I will not have a lot of time this week, so there won't be a lot of feedback from me the next couple of days.

OK, this is what I was able to capture

Hi @maliming,

Thanks for getting back to me.

At first glance, I don't see any application logs. /wwwroot/Logs is empty

I've also looked in the Application Event logs of Azure Web Services, but the last Error was from 2022/11/10 (which had to do with the certificates issues that plenty of people had, so that was easy to fix)

So my next question is: how to get to the ABP applications logs on Azure Web Service, because currently I'm not seeing them.

Showing 1 to 10 of 26 entries
Made with ❤️ on ABP v9.1.0-preview. Updated on November 11, 2024, 11:11