I closed the features of CmsKit, system crashed. I must delete all databases and migrate again.
Is there a way to reopen these features about CmsKit? Or not allowing users to close these?
CmsKitService
[18:16:51 INF] Route matched with {area = "cms-kit", action = "FindBySlug", controller = "PagesPublic"}. Executing controller action with signature System.Threading.Tasks.Task`1[Volo.CmsKit.Contents.PageDto] FindBySlugAsync(System.String) on controller Volo.CmsKit.Public.Pages.PagesPublicController (Volo.CmsKit.Public.HttpApi).
[18:16:51 WRN] ---------- RemoteServiceErrorInfo ----------
{
"code": "Volo.Feature:010003",
"message": "Required features are not enabled. At least one of these features must be enabled: CmsKit.PageEnable",
"details": null,
"data": {
"FeatureNames": "CmsKit.PageEnable"
},
"validationErrors": null
}
[18:16:51 WRN] Exception of type 'Volo.Abp.Authorization.AbpAuthorizationException' was thrown.
Web
[18:16:50 INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy
[18:16:50 INF] Executing handler method XTC.BaaSo.Web.Pages.IndexModel.OnGet - ModelState is Valid
[18:16:50 INF] Executed handler method OnGet, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult.
[18:16:50 ERR] An exception was thrown while deserializing the token.
Microsoft.AspNetCore.Antiforgery.AntiforgeryValidationException: The antiforgery token could not be decrypted.
---> System.Security.Cryptography.CryptographicException: The key {02049ad8-7d73-44b0-8795-e7b42d02cee1} was not found in the key ring. For more information go to http://aka.ms/dataprotectionwarning
at Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingBasedDataProtector.UnprotectCore(Byte[] protectedData, Boolean allowOperationsOnRevokedKeys, UnprotectStatus& status)
at Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingBasedDataProtector.Unprotect(Byte[] protectedData)
at Microsoft.AspNetCore.Antiforgery.DefaultAntiforgeryTokenSerializer.Deserialize(String serializedToken)
--- End of inner exception stack trace ---
at Microsoft.AspNetCore.Antiforgery.DefaultAntiforgeryTokenSerializer.Deserialize(String serializedToken)
at Microsoft.AspNetCore.Antiforgery.DefaultAntiforgery.GetCookieTokenDoesNotThrow(HttpContext httpContext)
[18:16:50 INF] Bundling __bundles/LeptonX.Global.9325FB768F9C0093DC4664395D730921.css (17 files)
[18:16:50 INF] > Minified /libs/abp/core/abp.css (1331 bytes -> 868 bytes)
[18:16:50 INF] > Minified /libs/@fortawesome/fontawesome-free/css/all.css (73577 bytes -> 53572 bytes)
[18:16:50 INF] > Minified /libs/@fortawesome/fontawesome-free/css/v4-shims.css (41312 bytes -> 33344 bytes)
[18:16:50 INF] > Minified /libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css (54850 bytes -> 43189 bytes)
[18:16:50 INF] > Minified /libs/datatables.net-bs5/css/dataTables.bootstrap5.css (13491 bytes -> 11874 bytes)
[18:16:50 INF] > Minified /libs/bootstrap-daterangepicker/daterangepicker.css (8069 bytes -> 6378 bytes)
[18:16:50 INF] > Minified /libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-styles.css (266 bytes -> 214 bytes)
[18:16:50 INF] > Minified /Themes/LeptonX/Global/side-menu/libs/bootstrap-icons/font/bootstrap-icons.css (74827 bytes -> 57860 bytes)
[18:16:50 INF] > Minified /Themes/LeptonX/Global/side-menu/css/js-bundle.css (34690 bytes -> 30518 bytes)
[18:16:50 INF] > Minified /Themes/LeptonX/Global/side-menu/css/layout-bundle.css (251958 bytes -> 247161 bytes)
[18:16:50 INF] > Minified /Themes/LeptonX/Global/side-menu/css/abp-bundle.css (3870 bytes -> 3025 bytes)
[18:16:50 INF] > Minified /Themes/LeptonX/Global/side-menu/css/font-bundle.css (117 bytes -> 116 bytes)
[18:16:50 INF] > Minified /global-styles.css (348 bytes -> 279 bytes)
[18:16:50 INF] Bundled __bundles/LeptonX.Global.9325FB768F9C0093DC4664395D730921.css (542070 bytes)
[18:16:50 INF] Start processing HTTP request GET https://localhost:44380/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0
[18:16:50 INF] Sending HTTP request GET https://localhost:44380/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0
[18:16:50 INF] Received HTTP response headers after 64.8629ms - 200
[18:16:50 INF] End processing HTTP request after 65.0538ms - 200
[18:16:50 INF] Start processing HTTP request GET https://localhost:44380/api/abp/application-localization?CultureName=en&OnlyDynamics=True&api-version=1.0
[18:16:50 INF] Sending HTTP request GET https://localhost:44380/api/abp/application-localization?CultureName=en&OnlyDynamics=True&api-version=1.0
[18:16:50 INF] Received HTTP response headers after 42.4769ms - 200
[18:16:50 INF] End processing HTTP request after 42.6202ms - 200
[18:16:50 INF] Start processing HTTP request GET https://localhost:44380/api/cms-kit-public/menu-items?api-version=1.0
[18:16:50 INF] Sending HTTP request GET https://localhost:44380/api/cms-kit-public/menu-items?api-version=1.0
[18:16:51 INF] Received HTTP response headers after 897.3606ms - 403
[18:16:51 INF] End processing HTTP request after 897.6537ms - 403
[18:16:51 INF] Executed page /Index in 1549.3604ms
[18:16:51 INF] Executed endpoint '/Index'
[18:16:51 ERR] An unhandled exception has occurred while executing the request.
Volo.Abp.Http.Client.AbpRemoteCallException: Forbidden
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.ThrowExceptionForResponseAsync(HttpResponseMessage response)
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.RequestAsync(ClientProxyRequestContext requestContext)
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.RequestAsync[T](ClientProxyRequestContext requestContext)
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.RequestAsync[T](String methodName, ClientProxyRequestTypeValue arguments)
at Volo.CmsKit.Public.Menus.ClientProxies.MenuItemPublicClientProxy.GetListAsync()
at Volo.CmsKit.Public.Web.Menus.CmsKitPublicMenuContributor.ConfigureMainMenuAsync(MenuConfigurationContext context)
at Volo.CmsKit.Public.Web.Menus.CmsKitPublicMenuContributor.ConfigureMenuAsync(MenuConfigurationContext context)
at Volo.Abp.UI.Navigation.MenuManager.GetInternalAsync(String name)
at Volo.Abp.UI.Navigation.MenuManager.GetAsync(String[] menuNames)
at Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX.Navigation.MenuViewModelProvider.GetMenuViewModelAsync()
at Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX.Themes.LeptonX.Components.SideMenu.MainMenu.MainMenuViewComponent.InvokeAsync()
at Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentInvoker.InvokeAsyncCore(ObjectMethodExecutor executor, Object component, ViewComponentContext context)
at Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentInvoker.InvokeAsync(ViewComponentContext context)
at Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentInvoker.InvokeAsync(ViewComponentContext context)
at Microsoft.AspNetCore.Mvc.ViewComponents.DefaultViewComponentHelper.InvokeCoreAsync(ViewComponentDescriptor descriptor, Object arguments)
at Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpViewComponentHelper.InvokeAsync(Type componentType, Object arguments)
at V1baMV6YmQplw0X98PH.UPIMWT6TrLmYa5A0bLn.ExecuteAsync()
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(IRazorPage page, ViewContext context)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageAsync(IRazorPage page, ViewContext context, Boolean invokeViewStarts)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(ViewContext context)
at Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.RenderPartialCoreAsync(String partialViewName, Object model, ViewDataDictionary viewData, TextWriter writer)
at Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.PartialAsync(String partialViewName, Object model, ViewDataDictionary viewData)
at s9pw74fNUuN4Eq9OcZh.SMIS7FfDqF8eAAIYmQI.<>c__DisplayClass21_0.zesArhS6o8NoyemU221.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.SetOutputContentAsync()
at s9pw74fNUuN4Eq9OcZh.SMIS7FfDqF8eAAIYmQI.ExecuteAsync()
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(IRazorPage page, ViewContext context)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageAsync(IRazorPage page, ViewContext context, Boolean invokeViewStarts)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderLayoutAsync(ViewContext context, ViewBufferTextWriter bodyWriter)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(ViewContext context)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|30_0[TFilter,TFilterAsync](ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeResultFilters>g__Awaited|28_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
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>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
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 Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
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.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 Volo.Abp.AspNetCore.Security.AbpSecurityHeadersMiddleware.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.Tracing.AbpCorrelationIdMiddleware.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.ExceptionHandlerMiddlewareImpl.<Invoke>g__Awaited|8_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)
[18:16:51 INF] Executing endpoint '/Public/CmsKit/Pages/Index'
[18:16:51 INF] Route matched with {page = "/Public/CmsKit/Pages/Index", action = "", controller = "", area = ""}. Executing page /Public/CmsKit/Pages/Index
[18:16:51 INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy
[18:16:51 INF] Executing handler method Volo.CmsKit.Public.Web.Pages.Public.CmsKit.Pages.IndexModel.OnGetAsync - ModelState is Valid
[18:16:51 INF] Start processing HTTP request GET https://localhost:44380/api/cms-kit-public/pages/Error?api-version=1.0
[18:16:51 INF] Sending HTTP request GET https://localhost:44380/api/cms-kit-public/pages/Error?api-version=1.0
[18:16:51 INF] Received HTTP response headers after 71.9637ms - 403
[18:16:51 INF] End processing HTTP request after 72.1478ms - 403
[18:16:51 ERR] ---------- RemoteServiceErrorInfo ----------
{
"code": "Forbidden",
"message": "Forbidden",
"details": null,
"data": null,
"validationErrors": null
}
Well, I will include all the pre-built modules in AdministrationService. So, which modules need do this at https://commercial.abp.io/modules?
I have another question, how to include cms in publicweb? Is there documentation for this?
I added it in microserver-pro template, it is works.
But how add a ChatUser?
Cool, resolved !
But is it possible not to modify the AdministrationService? In my product architecture, CmsKit will be offered as a separate MicroService like as ProductService. AdministrationService will do not reference other modules. If possible, I would like to resolve it in the ProductService.
OK, I sended.
and this is my code
ProductServiceDbContext .cs
using Microsoft.EntityFrameworkCore;
using XTC.BaaSo.ProductService.Products;
using Volo.Abp.Data;
using Volo.Abp.EntityFrameworkCore;
using Volo.CmsKit.EntityFrameworkCore;
using Volo.CmsKit.Newsletters;
using Volo.CmsKit.UrlShorting;
using Volo.CmsKit.Polls;
using Volo.CmsKit.Comments;
using Volo.CmsKit.Users;
using Volo.CmsKit.Reactions;
using Volo.CmsKit.Ratings;
using Volo.CmsKit.Tags;
using Volo.CmsKit.Pages;
using Volo.CmsKit.Blogs;
using Volo.CmsKit.MediaDescriptors;
using Volo.CmsKit.Menus;
using Volo.CmsKit.GlobalResources;
namespace XTC.BaaSo.ProductService.EntityFrameworkCore;
[ConnectionStringName(ProductServiceDbProperties.ConnectionStringName)]
public class ProductServiceDbContext : AbpDbContext<ProductServiceDbContext>, ICmsKitProDbContext, ICmsKitDbContext
{
public DbSet<Product> Products { get; set; }
public DbSet<NewsletterRecord> NewsletterRecords { get; set; }
public DbSet<NewsletterPreference> NewsletterPreferences { get; set; }
public DbSet<ShortenedUrl> ShortenedUrls { get; set; }
public DbSet<Poll> Polls { get; set; }
public DbSet<PollUserVote> PollUserVotes { get; set; }
public DbSet<PollOption> PollOptions { get; set; }
public DbSet<Comment> Comments { get; set; }
public DbSet<CmsUser> User { get; set; }
public DbSet<UserReaction> Reactions { get; set; }
public DbSet<Rating> Ratings { get; set; }
public DbSet<Tag> Tags { get; set; }
public DbSet<EntityTag> EntityTags { get; set; }
public DbSet<Page> Pages { get; set; }
public DbSet<Blog> Blogs { get; set; }
public DbSet<BlogPost> BlogPosts { get; set; }
public DbSet<BlogFeature> BlogFeatures { get; set; }
public DbSet<MediaDescriptor> MediaDescriptors { get; set; }
public DbSet<MenuItem> MenuItems { get; set; }
public DbSet<GlobalResource> GlobalResources { get; set; }
public ProductServiceDbContext(DbContextOptions<ProductServiceDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.ConfigureProductService();
builder.ConfigureCmsKitPro();
builder.ConfigureCmsKit();
}
}
ProductServiceEntityFrameworkCoreModule.cs
using Microsoft.Extensions.DependencyInjection;
using XTC.BaaSo.ProductService.Products;
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore.MySQL;
using Volo.Abp.Modularity;
using Volo.CmsKit.EntityFrameworkCore;
namespace XTC.BaaSo.ProductService.EntityFrameworkCore;
[DependsOn(
typeof(AbpEntityFrameworkCoreMySQLModule),
typeof(AbpEntityFrameworkCoreModule),
typeof(ProductServiceDomainModule)
)]
[DependsOn(typeof(CmsKitProEntityFrameworkCoreModule))]
public class ProductServiceEntityFrameworkCoreModule : AbpModule
{
public override void PreConfigureServices(ServiceConfigurationContext context)
{
ProductServiceEfCoreEntityExtensionMappings.Configure();
}
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddAbpDbContext<ProductServiceDbContext>(options =>
{
options.ReplaceDbContext<ICmsKitDbContext>();
options.ReplaceDbContext<ICmsKitProDbContext>();
/* Remove "includeAllEntities: true" to create
* default repositories only for aggregate roots */
options.AddDefaultRepositories(includeAllEntities: true);
options.AddRepository<Product, EfCoreProductRepository>();
});
Configure<AbpDbContextOptions>(options =>
{
options.Configure<ProductServiceDbContext>(c =>
{
c.UseMySQL(b =>
{
b.MigrationsHistoryTable("__ProductService_Migrations");
});
});
});
}
}
I saw the code of migrations, but not found nothing about CmsBlogs
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace XTC.BaaSo.ProductService.Migrations
{
/// <inheritdoc />
public partial class CMSKit : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "NewsletterRecords",
columns: table => new
{
...
},
constraints: table =>
{
...
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "Polls",
columns: table => new
{
...
},
constraints: table =>
{
...
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "PollUserVotes",
columns: table => new
{
...
},
constraints: table =>
{
...
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "ShortenedUrls",
columns: table => new
{
...
},
constraints: table =>
{
...
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "NewsletterPreferences",
columns: table => new
{
...
},
constraints: table =>
{
...
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "PollOptions",
columns: table => new
{
...
},
constraints: table =>
{
...
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateIndex(
name: "IX_NewsletterPreferences_NewsletterRecordId",
table: "NewsletterPreferences",
column: "NewsletterRecordId");
migrationBuilder.CreateIndex(
name: "IX_PollOptions_PollId",
table: "PollOptions",
column: "PollId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "NewsletterPreferences");
migrationBuilder.DropTable(
name: "PollOptions");
migrationBuilder.DropTable(
name: "PollUserVotes");
migrationBuilder.DropTable(
name: "ShortenedUrls");
migrationBuilder.DropTable(
name: "NewsletterRecords");
migrationBuilder.DropTable(
name: "Polls");
}
}
}
Hi, liangshiwei
dotnet ef migrations add CMSKit
at ProductService.EntityFrameworkCore[12:16:23 ERR] An exception occurred while iterating over the results of a query for context type 'XTC.BaaSo.ProductService.EntityFrameworkCore.ProductServiceDbContext'. MySqlConnector.MySqlException (0x80004005): Table 'BaaSo_Product.CmsBlogs' doesn't exist at MySqlConnector.Core.ServerSession.ReceiveReplyAsyncAwaited(ValueTask`1 task) in
Hi Anjali_Musmade,
I succeeded :)
Is like this?
$.ajax({
type: "POST", // Or "GET" depending on your scenario
url: "/ToDo1s?handler=Handle¶m1=hello¶m2=world", // Add URL of your handler method
success: function (data) {
console.log(data);
},
error: function (error) {
console.error(error);
}
});
public class IndexModel : ProdutServicePageModel
{
public string NameFilter { get; set; }
public async Task<IActionResult> OnPostHandleAsync(string param1, string param2)
{
Console.WriteLine($"{param1} {param2}");
return NoContent();
}
}
need OnPostHandlerAsync method