Base solution for your next web application
Starts in:
01 DAYS
01 HRS
01 MIN
01 SEC
Open Closed

ASP.NET Zero with Firebird -- exceptions on commit #4541


User avatar
0
aprsystem created

Hello.

We are trying to make ASP.NET Zero work with Firebird 3.0. We found a workaround for unsupported byte/tinyint mapping in Firebird, then we managed to add initial migration and successfully created database schema.

But now we're facing another issue -- when we launch the .Host project, the Firebird provider throws an InvalidOperationException, because apparently ABP is trying to commit a completed transaction ("This transaction has completed and it is no longer usable.").

We have a solution which demonstrates the issue, including the source projects for the EFCore.Firebird and FirebirdSql.Data.FirebirdClient libraries. The only deviation from upstream Firebird libraries is the aforementioned two-line workaround for byte mapping in EFCore.Firebird. When running the code, please use the .Web solution, because the .All one may have some references broken. The initial migration is already present. We also included the generated database (CORETESTDB.FDB). The Firebird 3 server is obviously required, with the WireCrypt feature disabled in server config file. The default db file location is C: root directory, as seen in the connection strings.

As we said, after the database is set up, launching the .Host project results in exception and the Swagger UI fails to load. However, the Abp tables are correctly populated on first launch with default data (AbpLanguages, AbpUsers, etc.).

When we tried catching the exception in FbTransaction.Commit() method (it is thrown by the guard method EnsureCompleted()) and then returning from the catch block, then we were able to reach the Swagger UI. Those exceptions seem to be very frequent. Then we got some other (likely unrelated) issues with SQL parameters generation when trying to log in as Admin with the Angular frontend, but that's another story.

For now, we would like to know if there is anything we can do to avoid the commit exceptions.


5 Answer(s)
  • User Avatar
    0
    ismcagdas created
    Support Team

    Hi @APRSystem,

    Can you immediately delete google drive link and share it via email to <a href="mailto:[email protected]">[email protected]</a> ? It is against our license conditions. Anyone can download that project.

  • User Avatar
    0
    aprsystem created

    Oh, pardon me. I've sent the message.

  • User Avatar
    0
    ismcagdas created
    Support Team

    Thanks, we will check it.

  • User Avatar
    0
    manojreddy created

    Any updates on this?

  • User Avatar
    0
    ismcagdas created
    Support Team

    Hi @ManojReddy,

    We couldn't find a proper solution in the past. Things might have been changed. Are you using the same libraries ?

    If you want to use Firebird, you can take a look at packages listed on below official EF Core document page; <a class="postlink" href="https://docs.microsoft.com/en-us/ef/core/providers/">https://docs.microsoft.com/en-us/ef/core/providers/</a>