Hi,
Sorry for the bad experience, we will fix those problems, and your ticket refunded.
About the Issue 3 - CmsKit - cannot upload images
It's not related to ABP, you can see: https://support.abp.io/QA/Questions/4474/Upload-file-Did-not-receive-any-data-in-the-allotted-time
Hi liangshiwei, thank you very much. Sorry for not finding the answer to Issue 3 myself - suggested fix works like a charm.
Issue 1 is left but not important for me at the moment.
Regarding issue 5 - I could not reproduce it locally so I thought it was a misconfiguration of my prod server. Now I am not sure anymore. Need to wait for https://support.abp.io/QA/Questions/4894/Public-site-MVC-error-handling-does-not-work-when-CmsKit-is-enabled
From my perspective we can close this issue. If 4894 is fixed and the forwarding thing still persists, I'll make that reproducable and open another ticket.
Something from CmsKit is overriding the MVC error handling - resulting in redirects of doom.
[15:36:44 INF] Request starting HTTP/2 GET https://localhost:44360/pupsi - -
[15:36:44 INF] Executing endpoint '/Public/CmsKit/Pages/Index'
[15:36:44 INF] Route matched with {page = "/Public/CmsKit/Pages/Index", action = "", controller = "", area = ""}. Executing page /Public/CmsKit/Pages/Index
[15:36:44 INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy
[15:36:44 INF] Executing handler method Volo.CmsKit.Public.Web.Pages.Public.CmsKit.Pages.IndexModel.OnGetAsync - ModelState is Valid
[15:36:44 WRN] Could not find IdentityClientConfiguration for CmsKitPublic. Either define a configuration for CmsKitPublic or set a default configuration.
[15:36:44 INF] Start processing HTTP request GET https://localhost:44322/api/cms-kit-public/pages/pupsi?api-version=1.0
[15:36:44 INF] Sending HTTP request GET https://localhost:44322/api/cms-kit-public/pages/pupsi?api-version=1.0
[15:36:44 INF] Received HTTP response headers after 18.9676ms - 204
[15:36:44 INF] End processing HTTP request after 19.065ms - 204
[15:36:44 INF] Executed handler method OnGetAsync, returned result Microsoft.AspNetCore.Mvc.NotFoundResult.
[15:36:44 INF] Executing StatusCodeResult, setting HTTP status code 404
[15:36:44 INF] Executed page /Public/CmsKit/Pages/Index in 19.9671ms
[15:36:44 INF] Executed endpoint '/Public/CmsKit/Pages/Index'
[15:36:44 INF] Request finished HTTP/2 GET https://localhost:44360/pupsi - - - 302 - - 21.5203ms
[15:36:44 INF] Request starting HTTP/2 GET https://localhost:44360/Error?httpStatusCode=404 - -
[15:36:44 INF] Executing endpoint '/Public/CmsKit/Pages/Index'
[15:36:44 INF] Route matched with {page = "/Public/CmsKit/Pages/Index", action = "", controller = "", area = ""}. Executing page /Public/CmsKit/Pages/Index
[15:36:44 INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy
[15:36:44 INF] Executing handler method Volo.CmsKit.Public.Web.Pages.Public.CmsKit.Pages.IndexModel.OnGetAsync - ModelState is Valid
[15:36:44 WRN] Could not find IdentityClientConfiguration for CmsKitPublic. Either define a configuration for CmsKitPublic or set a default configuration.
[15:36:44 INF] Start processing HTTP request GET https://localhost:44322/api/cms-kit-public/pages/Error?api-version=1.0
[15:36:44 INF] Sending HTTP request GET https://localhost:44322/api/cms-kit-public/pages/Error?api-version=1.0
[15:36:44 INF] Received HTTP response headers after 18.3062ms - 204
[15:36:44 INF] End processing HTTP request after 18.401ms - 204
[15:36:44 INF] Executed handler method OnGetAsync, returned result Microsoft.AspNetCore.Mvc.NotFoundResult.
[15:36:44 INF] Executing StatusCodeResult, setting HTTP status code 404
[15:36:44 INF] Executed page /Public/CmsKit/Pages/Index in 19.2325ms
[15:36:44 INF] Executed endpoint '/Public/CmsKit/Pages/Index'
[15:36:44 INF] Request finished HTTP/2 GET https://localhost:44360/Error?httpStatusCode=404 - - - 302 - - 20.6696ms
[15:36:44 INF] Request starting HTTP/2 GET https://localhost:44360/Error?httpStatusCode=404 - -
[15:36:44 INF] Executing endpoint '/Public/CmsKit/Pages/Index'
[15:36:44 INF] Route matched with {page = "/Public/CmsKit/Pages/Index", action = "", controller = "", area = ""}. Executing page /Public/CmsKit/Pages/Index
[15:36:44 INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy
[15:36:44 INF] Executing handler method Volo.CmsKit.Public.Web.Pages.Public.CmsKit.Pages.IndexModel.OnGetAsync - ModelState is Valid
[15:36:44 WRN] Could not find IdentityClientConfiguration for CmsKitPublic. Either define a configuration for CmsKitPublic or set a default configuration.
[15:36:44 INF] Start processing HTTP request GET https://localhost:44322/api/cms-kit-public/pages/Error?api-version=1.0
[15:36:44 INF] Sending HTTP request GET https://localhost:44322/api/cms-kit-public/pages/Error?api-version=1.0
[15:36:44 INF] Received HTTP response headers after 18.1934ms - 204
[15:36:44 INF] End processing HTTP request after 18.2671ms - 204
[15:36:44 INF] Executed handler method OnGetAsync, returned result Microsoft.AspNetCore.Mvc.NotFoundResult.
[15:36:44 INF] Executing StatusCodeResult, setting HTTP status code 404
[15:36:44 INF] Executed page /Public/CmsKit/Pages/Index in 18.8792ms
[15:36:44 INF] Executed endpoint '/Public/CmsKit/Pages/Index'
[15:36:44 INF] Request finished HTTP/2 GET https://localhost:44360/Error?httpStatusCode=404 - - - 302 - - 20.2102ms
[15:36:44 INF] Request starting HTTP/2 GET https://localhost:44360/Error?httpStatusCode=404 - -
[15:36:44 INF] Executing endpoint '/Public/CmsKit/Pages/Index'
[15:36:44 INF] Route matched with {page = "/Public/CmsKit/Pages/Index", action = "", controller = "", area = ""}. Executing page /Public/CmsKit/Pages/Index
[15:36:44 INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy
[15:36:44 INF] Executing handler method Volo.CmsKit.Public.Web.Pages.Public.CmsKit.Pages.IndexModel.OnGetAsync - ModelState is Valid
[15:36:44 WRN] Could not find IdentityClientConfiguration for CmsKitPublic. Either define a configuration for CmsKitPublic or set a default configuration.
[15:36:44 INF] Start processing HTTP request GET https://localhost:44322/api/cms-kit-public/pages/Error?api-version=1.0
And so on... this now repeats.
abp get-source Volo.Abp.LeptonXTheme.ProLeptonXDemoAppWebModule move app.UseErrorPage() outside of the development clause
/pupsi or something else that obviously does not existTo "fix" the behavior, go to LeptonXDemoAppGlobalFeatureConfigurator and Change cmsKit.EnableAll() to cmsKit.DisableAll() and repeat above steps.
create a new commercial abp solution
Blazor, EF Core, PostgresDb (but should not matter), Public Site with CmsKit
Issue 1 - package.json on new projects
error An unexpected error occurred: "C:\\Repos\\jf\\cmskit-repro\\src\\CmsKitIssue.Web.Public\\package.json: Unexpected token } in JSON at position 196".
This is due to the comma. needed to remove that and run abp install-libs again

After that, run migrations and all that stuff. If you now try to start the blazor app
Issue 2 - flag-icon-css not getting copied
you get an error because flag-icon-css is missing in wwwroot/libs. Funny thing is: the folder exists in node_modules. I just copied that one over and now it works - but that should get fixed.
Issue 3 - CmsKit - cannot upload images
Before we start, apply workaround from https://support.abp.io/QA/Questions/4884
By adding a MyDynamicWidgetMarkdown.razor file somewhere in the blazor project with following content:
@using Blazorise.Markdown
@using Volo.Abp.DependencyInjection
@using Volo.CmsKit.Pro.Admin.Blazor.Pages.CmsKit
@inherits Volo.CmsKit.Pro.Admin.Blazor.Pages.CmsKit.DynamicWidgetMarkdown
@attribute [ExposeServices(typeof(DynamicWidgetMarkdown))]
@attribute [Dependency(ReplaceServices = true)]
@* WORKAROUND FOR ISSUE https://support.abp.io/QA/Questions/4884*@
<Markdown @Value="@Value"
          ValueChanged="@OnValueChanged"
          ImageUploadChanged="@OnImageUploadChangedAsync"
          ImageUploadEnded="@OnImageUploadEndedAsync"
          AutoDownloadFontAwesome="false"
          CustomButtonClicked="@OnCustomButtonClicked"
          @ref="@MarkdownRef">
    <Toolbar>
        @{
            foreach (var markdownToolbarButton in MarkdownToolbarButtons)
            {
                <MarkdownToolbarButton Action="@markdownToolbarButton" />
            }
            <MarkdownToolbarButton Separator Name="W" Icon="@("none")" Title="Add Widget" Text="W"></MarkdownToolbarButton>
        }
    </Toolbar>
</Markdown>
<Modal @ref="@AddWidgetModalRef" Closing="@ClosingAddWidgetModal" RenderMode="ModalRenderMode.LazyReload">
    <ModalContent Size="ModalSize.Large" Centered="true">
        <Form>
            <ModalHeader>
                <ModalTitle>@L["AddWidget"]</ModalTitle>
                <CloseButton Clicked="CloseAddWidgetModalAsync" />
            </ModalHeader>
            <ModalBody>
                @if (Widgets.Any())
                {
                    <Field>
                        <FieldLabel>@L["Widget"]</FieldLabel>
                        <FieldBody>
                            <Select @bind-SelectedValue="@ViewModel.Widget">
                                <SelectItem></SelectItem>
                                @foreach (var item in Widgets)
                                {
                                    <SelectItem Value="@item.Key">@item.Value</SelectItem>
                                }
                            </Select>
                        </FieldBody>
                    </Field>
                    foreach (var item in ViewModel.Details)
                    {
                        if (item.EditorComponentName is not null)
                        {
                            if (ViewModel.Widget == item.Name)
                            {
                                <div id="editor-@item.Name">
                                    <form data-check-form-on-close="false">
                                        <DynamicComponent Type="Options.Value.FindParameterComponentType(item.EditorComponentName)"></DynamicComponent>
                                    </form>
                                </div>
                            }
                        }
                    }
                }
                else
                {
                    <p>@L["PleaseConfigureWidgets"].Value</p>
                }
            </ModalBody>
            <ModalFooter>
                @if (Widgets.Any())
                {
                    <Button Color="Color.Primary" Clicked="AddWidgetAsync">@L["Add"]</Button>
                }
            </ModalFooter>
        </Form>
    </ModalContent>
</Modal>
From within your started blazor app, go to CMS->Pages and create a new page
Now upload an image
 
 You now see that something is uploading stuff
You now see that something is uploading stuff

That's about it. Nothing will happen. You can wait some time to experience fancy timeouts

[13:25:21 ERR] Unhandled exception in circuit 'qztupJFivEN9fZn8P9cfI-UIOzmzZKUIR94UO2VEM_Y'.
System.TimeoutException: Did not receive any data in the allotted time.
   at System.IO.Pipelines.Pipe.GetReadResult(ReadResult& result)
   at System.IO.Pipelines.Pipe.GetReadAsyncResult()
   at System.IO.Pipelines.PipeReaderStream.ReadAsyncInternal(Memory`1 buffer, CancellationToken cancellationToken)
This issue also applies to creating a blog post with an image, same stuff happens. And when you try to edit a blog post to add an image after creation.
Issue 4 - CmsKit getting images Funny things also happen when you create a blog post without an image and view it on your public site:
EDIT: Issue 5 is due to misconfiguration ~~Issue 5 - Url forwarding in a tiered app And the last one - url forwarding:
this seems to be only an issue when you have a tiered solution. Non-tiered works Add this:
Then go to your public site /blog. you should get redirected to /blogs/default - but that somehow does not work.~~
{
  "version": "1.0.0",
  "name": "my-app",
  "private": true,
  "dependencies": {
    "@volo/abp.aspnetcore.mvc.ui.theme.leptonx": "~2.1.0",
    "@volo/aspnetcore.components.server.leptonxtheme": "~2.1.0",
    "@volo/cms-kit-pro.admin": "~7.1.1",
    "@volo/account": "~7.1.1",
    "@volo/language-management": "~7.1.1"
  }
}
Unable to set property 'text' on object of type 'Blazorise.Markdown.MarkdownToolbarButton'. The error was: Unable to cast object of type 'System.Boolean' to type 'System.String'.
Message: Unable to set property 'text' on object of type 'Blazorise.Markdown.MarkdownToolbarButton'. The error was: Unable to cast object of type 'System.Boolean' to type 'System.String'.
Type: InvalidOperationException
Stack Trace
System.InvalidOperationException: Unable to set property 'text' on object of type 'Blazorise.Markdown.MarkdownToolbarButton'. The error was: Unable to cast object of type 'System.Boolean' to type 'System.String'.
 ---> System.InvalidCastException: Unable to cast object of type 'System.Boolean' to type 'System.String'.
   at Microsoft.AspNetCore.Components.Reflection.PropertySetter.CallPropertySetter[TTarget,TValue](Action`2 setter, Object target, Object value)
   at Microsoft.AspNetCore.Components.Reflection.ComponentProperties.<SetProperties>g__SetProperty|3_0(Object target, PropertySetter writer, String parameterName, Object value)
   --- End of inner exception stack trace ---
   at Microsoft.AspNetCore.Components.Reflection.ComponentProperties.<SetProperties>g__SetProperty|3_0(Object target, PropertySetter writer, String parameterName, Object value)
   at Microsoft.AspNetCore.Components.Reflection.ComponentProperties.SetProperties(ParameterView& parameters, Object target)
   at Blazorise.BaseComponent.SetParametersAsync(ParameterView parameters)
   at Microsoft.AspNetCore.Components.Rendering.ComponentState.SupplyCombinedParameters(ParameterView directAndCascadingParameters)
navigate to
Cms/BlogPosts/Create
or
Cms/Pages/Create
hi
Please update the
src/Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX/Themes/LeptonX/Components/SideMenu/MobileNavbar/Default.cshtmlwith below code
Hey, did that on my side. Works now as expected.
As for the Theme-Bug. Took a look into that and that just can not work as expected.
src\Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX\Themes\LeptonX\Components\Common\MobileGeneralSettings\Default.cshtml
In the first loop, you add every style. then, you add the system menu - no matter what and style it as selected.

I removed lines 36 to 44 and live with the fact that on page load - the currently selected theme is not highlighted. The logic would need to be adjusted so that the loop considers the current style setting
Thanks. Can you share the
LeptonxDemoAppproject? liming.ma@volosoft.com
Uhm. As described this is your demo project without a single change.
You can get it by executing abp get-source Volo.Abp.LeptonXTheme.Pro --version 2.1.0
But if it helps you, I'll send it to you
I just started the demo app from the leptonx project. Same issue applies.
please share the steps I will try to reproduce it. Thanks
Sure,
First get source of LeptonXTheme.Pro
abp get-source Volo.Abp.LeptonXTheme.Pro --version 2.1.0
Replace $(abpVersion) with 7.1.0 in all csproj files. Have no process for that, so I just open vs code and do some good old find and replace magic.

Next step is to start docker.
After that, run tye with .\demo\run-app.ps1 -setup
Little note here: You have
try {
        dotnet tool install -g Microsoft.Tye --prerelease
    }
    catch {
        { 1:dotnet tool update -g Microsoft.Tye --prerelease }
    }
You only need dotnet tool update - it will automatically install a package if it is not there.
Alternatively, you may start things directly from within visual studio (I had to, because tye has thrown some weird issues which I have to look into)

Now wait until stuff has started.
Now go to https://localhost:44360/
Updated to 7.1.0 and LeptonX 2.1.0 today. Issues still apply
 
                                