‫۵ سال و ۶ ماه قبل، دوشنبه ۲۰ اسفند ۱۳۹۷، ساعت ۱۱:۵۳
یک نکته‌ی تکمیلی: روش مشاهده‌ی مقدار پارامترها در لاگ‌های SQL
در حالت معمولی، خروجی SQL لاگ شده‌ی توسط EF Core به صورت زیر است:
Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (41ms) 
[Parameters=[@__id_0='?' (DbType = Int32)], 
CommandType='Text', CommandTimeout='30']
 SELECT TOP(2) [m].[Id], [m].[Address], [m].[City], [m].[Email], [m].[Name], [m].[Phone], [m].[PostalCode], [m].[State] FROM [Contact] AS [m] WHERE [m].[Id] = @__id_0
برای مشاهده‌ی مقدار پارامترها نیاز است SensitiveDataLogging را فعال کرد:
services.AddDbContext<ContactsContext>(options => { 
  options.UseSqlServer(Configuration["Data:ContactsContext:ConnectionString"]); 
  options.EnableSensitiveDataLogging(); 
});
اینبار خروجی لاگ شده، مقدار پارامترها را نیز به همراه دارد:
Microsoft.EntityFrameworkCore.Database.Command[20100] Executing DbCommand
 [Parameters=[@__id_0='1' (Nullable = true)], 
CommandType='Text', CommandTimeout='30'] 
SELECT TOP(2) [m].[Id], [m].[Address], [m].[City], [m].[Email], [m].[Name], [m].[Phone], [m].[PostalCode], [m].[State] FROM [Contact] AS [m] WHERE [m].[Id] = @__id_0
‫۵ سال و ۶ ماه قبل، یکشنبه ۱۹ اسفند ۱۳۹۷، ساعت ۱۶:۵۰
به روز رسانی برای NET Core 2.2.104. و signalr 1.1.2 
بسته‌ی سمت کلاینت signalr به صورت زیر تامین می‌شود:
npm install @aspnet/signalr --save
نکات JavaScript ای موجود در مطلب جاری هنوز برقرار هستند؛ منهای تغییر روش وهله سازی hubConnection که به صورت زیر در آمده‌است:
var connection = new signalR.HubConnectionBuilder().withUrl('/message').build();
مابقی آن مانند قبل است.

پس از اعمال این تغییرات، کدهای به روز شده‌ی انتهای مطلب را از اینجا می‌توانید دریافت کنید: SignalRCore2Sample-SDK-2.2.104.zip  
‫۵ سال و ۶ ماه قبل، یکشنبه ۱۹ اسفند ۱۳۹۷، ساعت ۱۶:۴۷
به روز رسانی برای NET Core 2.2.104. و Angular 7 و signalr 1.1.2 
بسته‌ی سمت کلاینت signalr به صورت زیر تامین می‌شود:
npm install @aspnet/signalr --save
نکات Angular ای موجود در مطلب جاری هنوز برقرار هستند؛ منهای تغییر روش وهله سازی hubConnection که به صورت زیر در آمده‌است:
let hubConnection = new HubConnectionBuilder()
      .withUrl(this.hubPath)
      .build();
مابقی آن مانند قبل است.

در سمت سرور هم تنظیمات Cors به صورت زیر تغییر می‌کند به همراه «تغییرات مورد نیاز جهت ارتقاء به ASP.NET Core 2.1»:
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSignalR();
            services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                    builder => builder
                        .WithOrigins("http://localhost:4200") //Note:  The URL must be specified without a trailing slash (/).
                        .AllowAnyMethod()
                        .AllowAnyHeader()
                        //.SetIsOriginAllowed((host) => true)
                        .AllowCredentials());
            });

پس از اعمال این تغییرات، کدهای به روز شده‌ی انتهای مطلب را از اینجا می‌توانید دریافت کنید: SignalRCore2Sample-SDK-2.2.104.zip
‫۵ سال و ۶ ماه قبل، یکشنبه ۱۹ اسفند ۱۳۹۷، ساعت ۱۲:۴۰
بله. البته باز هم یک کوکی بسیار کوچک و چند بایتی، حاوی مشخصات ID رمزنگاری شده‌ی آن تولید می‌شود که هدف از آن، بازیابی اطلاعات اصلی این کوکی از بانک اطلاعاتی و استفاده‌ی خودکار از آن در برنامه است .
‫۵ سال و ۶ ماه قبل، یکشنبه ۱۹ اسفند ۱۳۹۷، ساعت ۱۱:۴۵
یک نکته‌ی تکمیلی: دریافت خطای «HTTP Error 500.30 - ANCM In-Process Start Failure» پس از فعالسازی هاست درون پروسه‌ای از نگارش 2.2 به بعد
در نگارش فعلی این ماژول درون پروسه‌ای، متد Directory.GetCurrentDirectory بجای اینکه مسیر برنامه را باز گرداند، مسیر C:\windows\system32\inetsrv یا همان پروسه‌ی IIS را بر می‌گرداند و باید به این موضوع دقت داشت. برای مثال ممکن است مسیر بانک اطلاعاتی برنامه پیدا نشود و یا فایل تنظیمی قابل خواندن نباشد. چند مثال از این نوع: - ASP.NET Core Configuration Issue with In Process Hosting   

و یا کلا آن‌را در فایل csproj خاموش کنید (هر چند اگر SDK متناسبی را نصب کرده باشید (آخرین نگارش پایدار آن‌را)، این مشکل نباید وجود داشته باشد):
Change this section ...

<PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
  </PropertyGroup>

to the following ...

<PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
    <AspNetCoreModuleName>AspNetCoreModule</AspNetCoreModuleName>
  </PropertyGroup>
‫۵ سال و ۶ ماه قبل، یکشنبه ۱۹ اسفند ۱۳۹۷، ساعت ۱۱:۴۲
امکان اجرای درون پروسه‌ای در نگارش 2.2 میسر هست و دقیقا جزئی از بسته‌ی هاستینگ آن است (لینک مطرح شده‌ی در نظر فوق قدیمی است). فقط در این حالت ممکن است برنامه مسیرهای فایل‌های مشخص شده‌ی در آن را پیدا نکند. باید با دستور dotnet ./proj.dll برنامه را اجرا کنید (و یا یکی از روش‌های مطرح شده‌ی در مطلب «بررسی خطاهای ممکن در حین راه اندازی اولیه برنامه‌های ASP.NET Core در IIS») و دقیقا مشاهده کنید که مشکل از کجاست. چند مثال از این نوع:
هر دو مورد به این اشاره می‌کنند که در نگارش فعلی این ماژول درون پروسه‌ای، متد Directory.GetCurrentDirectory بجای اینکه مسیر برنامه را باز گرداند، مسیر C:\windows\system32\inetsrv یا همان پروسه‌ی IIS را بر می‌گرداند و باید به این موضوع دقت داشت.  
‫۵ سال و ۶ ماه قبل، جمعه ۱۷ اسفند ۱۳۹۷، ساعت ۱۸:۳۸
- این خطا یعنی سرویس IConfigurationRoot را به سیستم تزریق وابستگی‌ها معرفی نکردید.
- تنظیمات اولیه‌ی EF Core از زمان نگارش 2 آن اندکی تغییر کرده؛ خلاصه‌ی نهایی و به روز شده‌ی آن در پروژه‌ی DNTIdentity و یا پروژه‌ی «اعتبارسنجی مبتنی بر JWT در ASP.NET Core 2.0 بدون استفاده از سیستم Identity» موجود است (هر دو پروژه به آخرین نگارش SDK، به روز رسانی شده‌اند).