‫۴ سال و ۳ ماه قبل، دوشنبه ۲۳ تیر ۱۳۹۹، ساعت ۲۲:۴۲
در حال حاضر با اینکه یک Certificate معتبر گرفتم و روی IIS فعال کردم و در کروم هم گواهینامه رو سبز نمایش میده ولی برای ping خطای زیر رو در Event Viewer ویندوز می‌بینم برای هر دقیقه که اجرا میشه؟!!
آخرین نسخه که asp . net Core 3.1.5 هست روی سرور نصب هست همینطور dot net framework 4.8
همه موارد دیگر پروژه درست کار می‌کنه و خطایی ندارم غیر از این بخش که در Event Viewer هم میشه دید
ممنون میشم راهنمایی بفرمایید چطور رفعش کنم

Category: DNTScheduler.Core.ScheduledTasksCoordinator
EventId: 0

Failed running DNTScheduler.Core.PingTask

Exception: 
System.AggregateException: One or more errors occurred. (The SSL connection could not be established, see inner exception.)
 ---> System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.
 ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
‫۴ سال و ۴ ماه قبل، چهارشنبه ۲۱ خرداد ۱۳۹۹، ساعت ۱۶:۰۲
چطوری میشه موقع Stop کردن IIS و یا stop شدن پروژه به هر دلیلی (قبل از Stop کامل) متدی call شود که آخرین اطلاعاتی که در رم و در job‌ها اجرا شده رو در دیتابیس ذخیره کرد؟
مثلا تعداد کاربران آنلاین رو در یک متغیر static ذخیره می‌کنم که وقتی پروژه به هر دلیلی Stop شد میخوام آخرین اطلاعات متغیر استاتیک رو در دیتابیس ذخیره کنم.
البته در یک وظیفه (job) در پایان هر روز کل تعداد بازدید‌ها رو به تاریخ همان روز در دیتابیس ذخیره می‌کنم ولی می‌خواستم اگر به هر دلیلی پروژه Stop شد آخرین تعداد رو تا لحظه Stop شدن در دیتابیس ذخیره کنم.

برای حل این مشکل چه راهکاری پیشنهاد می‌کنید؟
‫۴ سال و ۱۰ ماه قبل، شنبه ۳۰ آذر ۱۳۹۸، ساعت ۱۳:۱۵
سلام
این کتابخانه WebOptimizer.Core بهترین گزینه‌ای بود که فایلهای اسکریپت و CSS رو هم فشرده میکنه و هم Bundle و هم اینکه این فایلهای جدید Bundle شده رو داخل فضای کش میریزه که از مکان فایلهای اصلی جدا نگهداری میشه .
فقط در مورد ارتقا از ASP.NET Core 2.2 به ASP.Net Core 3.0 چون برای بخش احراز هویت شخصی بر روی پروژه باید از فریمورکهای زیر در نسخه ASp.NET Core 3.0 در قسمت PackageReference‌های پروژه استفاده بشه
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="3.1.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="3.1.0" />
یک خطا در زمانی که فایلهای CSS رو می‌خواهد با هم Bundle کند پیش میاید که در نسخه‌های قبلی و یا حتی زمانی که از این سه PackageReference نخواهیم استفاده کنیم پیش نمیاد.

برای رفع این مشکل در حال حاضر میتوانید این خط از کد سورس پروژه را با خط کد زیر تغییر دهید تا خطا رفع شود.
content[key] = Adjust(config.Content[key].AsString(), input.PhysicalPath, output.Name);
دلیلش اینه زمانی که از اون PackageReference‌ها استفاده میکنیم در این خط از کد خصوصیت output.PhysicalPath  مقدار null دریافت میکنه که باعث عدم کارایی و Bundle کردن فایلهای CSS میشه .
گزارش کردم تا بعدا در نسخه nuget Package این مشکل برطرف بشه.
‫۴ سال و ۱۰ ماه قبل، یکشنبه ۲۴ آذر ۱۳۹۸، ساعت ۲۲:۵۹
سلام و ممنون از راهنمایی‌های خوبتان
کتابخانه اصلی Lib.AspNetCore.Mvc.JqGrid مربوط به پروژه Demo.AspNetCore.JqGrid رو با نسخه ASP.NET Core 3.1 به روز رسانی کردم و بعضی خطاهای Type Load Exception هم که در سورس فریمورک اصلی بود برطرف کردم. چون کدهای سورس اصلی فریمورک پروژه رو مجبور شدم تغییر بدم دیگه نشد که به صورت nuget Package به پروژه اضافه کنم برای همین سورس فریمورک اصلی رو در یک پوشه در کنار پروژه دمو که همه را به نسخه ASP.NET Core 3.1 به روز رسانی کردم گذاشتم. البته این نسخه با همان شیوه ای هست که در این لینک توضیح داده بودم و هم میشه با انواع بانکهای اطلاعاتی NoSQL استفاده کرد و هم با بانک اطلاعاتی‌های رابطه ای از قبیل MS SQL Server.

ضمنا اون موارد خطا هم به خاطر همین exception داخلی Type Load Exception در فریمورک اصلی بود که پس از ارتقا به نسخه 3.1 برطرف شد.


دوستان از لینک زیر می‌توانید نسخه بروز رسانی شده با ASP.NET Core 3.1 را استفاده نمایید.
Demo.JqGrid.core3.1.rar  (6.25 MB) 




در لینک هم همون نسخه دمو به همراه سورسهای فریمورک اصلی رو که تغییر دادم برای نویسنده اصلی فریمورک Lib.AspNetCore.Mvc.JqGrid در کامنت بارگزاری کردم تا فریمورک اصلی رو هم بروز رسانی کنند تا بعدا بشه به صورت nuget package استفاده کرد. البته توی اون نسخه کتابخانه JqGrid.Core که در نمونه مثال اینجا آپلود کردم نیست به این دلیل که نمونه مثال خودشون رو داشته باشند و باعث پیچیدگی کد برای ارتقای package نشه


سورس پروژه رو با این تغییرات در گیتهاب هم منتشر کردم

‫۴ سال و ۱۰ ماه قبل، یکشنبه ۲۴ آذر ۱۳۹۸، ساعت ۱۷:۱۱
خطای زیر رو ایجاد کرده در کلاس داخلی JqGridRequestModelBinder مربوط به کتابخانه Lib.AspNetCore.Mvc.JqGrid
برای همین چون نمی‌تواند Binding مدل را به درستی انجام دهد exception داخلی ایجاد می‌کرده و مدل سازی ورودی متد به درستی انجام نمیشده.
به نظرتون برای رفع این مشکل راه حلی هست؟ یا باید منتظر باشیم تا نسخه‌های بعدی ASP.NET Core ؟

Could not load type 'Microsoft.AspNetCore.Mvc.ModelBinding.Internal.ModelBindingHelper' 
from assembly 'Microsoft.AspNetCore.Mvc.Core, Version=3.0.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.

‫۴ سال و ۱۰ ماه قبل، یکشنبه ۲۴ آذر ۱۳۹۸، ساعت ۱۴:۲۲
این موارد رو با اینکه قبلا مطالعه کرده بودم دوباره دقیق‌تر مطالعه کردم
ولی مشکلی که وجود داره اینه که با وجود اینکه Routing‌ها به همین شکلی که توی ASP.NET Core 3.0 گفته شده رو تنظیم کردم
  public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        { 
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();

            JqGridRequest.ParametersNames = new JqGridParametersNames() {  PagesCount = "npage" };
            app.UseRouting();
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            { 
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=JavaScript}/{action=Basics}/{id?}");

                endpoints.MapControllerRoute(
                   name: "default2",
                   pattern: "{controller=StarWars}/{action=Characters}");
         
                endpoints.MapRazorPages(); 
            });
        }


ولی متد سمت سرور اصلا Call نمیشه که بخواد جواب رو نمایش بده
شاید لازم باشه object از کلاس JqGridRequest که ورودی متد Characters هست خصوصیات کلاسش تغییراتی بر حسب System.Text.Json داشته باشه تا بتونه متد سمت سرور رو صحیح Call کنه
یعنی تبدیل رشته‌ی JSON به شیء متناظر با آن و یا حالت عکس آن گویا به صورت صحیح انجام نمیشه احتمالا باید پروژه Lib.AspNetCore.Mvc.JqGrid  بر حسب ASP.NET Core 3.0 کامپایل بشه


در اینجاهم یه کامنت در مورد تغییرات JSON serialization/deserialization گذاشتند
‫۴ سال و ۱۰ ماه قبل، چهارشنبه ۲۰ آذر ۱۳۹۸، ساعت ۱۵:۳۹
با اینکه نوع متدهایی که اطلاعات رو از سرور درخواست میکنه به صورت post تنظیم شده
 <script type="text/javascript">
        $(function() {
            $('#jqgStarWarsCharacters').jqGrid({
                url: '@Url.Action("Characters", "StarWars")',
                datatype: 'json',
                mtype: 'POST',
                cmTemplate: { align: 'center' },
                colNames: [ 'Name', 'Gender', 'Height', 'Weight', 'Birth Year', 'Skin Color', 'Hair Color', 'Eye Color' ],
                colModel: [
                            { name: 'Name' },
                            { name: 'Gender', sortable: false, formatter: demo.jqGrid.character.genderFormatter },
                            { name: 'Height', summaryType: 'avg' },
                            { name: 'Weight', summaryType: 'avg' },
                            { name: 'BirthYear' },
                            { name: 'SkinColor', sortable: false, formatter: demo.jqGrid.character.skinColorFormatter },
                            { name: 'HairColor', sortable: false, formatter: demo.jqGrid.character.hairColorFormatter },
                            { name: 'EyeColor', sortable: false, formatter: demo.jqGrid.character.eyeColorFormatter }
                          ],
                caption: 'StarWars Characters',
                grouping: true,
                groupingView: {
                    groupField: ['Gender'],
                    groupDataSorted: true,
                    groupColumnShow: [false],
                    groupSummary: [true]
                },
                footerrow: true,
                userDataOnFooter: true,
                jsonReader: { repeatitems: false, id: 'Id' },
                pager: $('#jqgpStarWarsCharacters'),
                rowNum: 100,
                sortname: 'Id',
                sortorder: 'asc',
                viewrecords: true,
                height: '100%'
            });
        });
    </script>
ولی توی پوشه Network وقتی دیدم نوعش رو xml نمایش داده. همینطور متد دریافت اطلاعات از سمت سرور اصلا call نمیشه که بخواد پاسخ رو به هرشکلی برگردونه
کد نوشته شده در بالا در asp.net Core 2.2 درست کار می‌کرد ولی الان در asp.net core 3.0 بخش network این نمایش زیر رو داره
در این پروژه ارتقا از ASP . NET Core 2.2 به Core 3.0 کلا برای اینکه متدهای Ajax قبلی کار کنه تنظیمات خاص دیگری هم لازمه؟




توی startup پروژه هم با ارتقا به Core 3.0 متدها به صورت زیر نوشته شده که متد UseMVC قبلی رو حذف کردم

public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllersWithViews();
            services.AddRazorPages();
            services.AddControllers()
                .AddNewtonsoftJson();
        }
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();
 JqGridRequest.ParametersNames = new JqGridParametersNames() { PagesCount = "npage" }; app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapDefaultControllerRoute(); endpoints.MapControllerRoute( name: "default", pattern: "{controller=JavaScript}/{action=Basics}"); endpoints.MapControllerRoute( name: "default2", pattern: "{controller=StarWars}/{action=Characters}/{id?}"); endpoints.MapRazorPages(); }); }