نظرات مطالب
DbContext pooling در EF Core 2.0
این خطا از ASP.NET Core 3x به بعد ظاهر شده و راه حل سادهای هم دارد (بدون نیاز به تغییری در زیر ساختهای برنامه): «یک نکتهی تکمیلی: MemoryCache در ASP.NET Core 3.0 »
سلام، چگونه MvcAjaxPager را میتوان در asp.net core هم استفاده کرد؟ یا اینکه آیا پلاگینی هست که بصورت hashchange مثل MvcAjaxPager اما در asp.net core بشه استفاده کرد؟
آیا میتوان یک برنامهی ASP.NET Core را به صورت Virtual Directory درون یک برنامهی ASP.NET Core دیگر میزبانی کرد؟ در اینحالت سیستم مسیریابی درون Child با Parent تداخل ایجاد نمیکند؟
سلام؛ نحوه کار با ConcurrentDictionary در Asp.Net Core دقیقا چطوری هستش؟ لطف کنید نحوه پیاده سازی همین ماژول Online Visitors رو با ConcurrentDictionary داخل Asp.Net Core بگید.
رمزنگاری و رمز گذاری مقادیر تنظیمات برنامه در ASP.NET CORE
پیش نیازها :
ارتقاء به ASP.NET Core 1.0 - قسمت 7 - کار با فایلهای config
ذخیره سازی تنظیمات برنامههای ASP.NET Core در بانک اطلاعاتی به کمک Entity Framework Core
آخرین نگارش Rider، پشتیبانی از اجرای برنامههای ASP.NET Core را توسط IIS Express هم اضافه کردهاست. در این حالت اگر به صورت پیشفرض و بدون تنظیم خاصی، سعی در اجرای برنامهی وب خود توسط IIS Express کنید، با خطای زیر مواجه خواهید شد:
در ادامه قصد داریم روش رفع این مشکل را بررسی کنیم.
پیشنیازهای کار با IIS Express توسط Rider
- نصب IIS Express به صورت جداگانه
- نصب بستهی هاستینگ ASP.NET Core برای IIS
این مورد برای اضافه شدن AspNetCoreModuleV2 به IIS Express خام فوق، الزامی است.
معرفی بستهی هاستینگ ASP.NET Core به IIS Express
پس از نصب این بستهها، فایل واقع در مسیر زیر را برای یافتن واژهی AspNetCoreModule جستجو کنید (یک چنین فایلی در مسیر 64 بیتی C:\Program Files\IIS Express\config\templates\PersonalWebServer نیز وجود دارد):
همچنین مسیر زیر نیز باید موجود باشد:
اما اگر واژهی AspNetCoreModule، در این فایل ذکر نشده بود و یا مسیر پوشهی Asp.Net Core Module فوق وجود نداشت، یعنی بستهی هاستینگ نصب شده، به IIS Express معرفی نشدهاست. برای رفع این مشکلات:
- ابتدا پوشهی C:\Program Files (x86)\IIS\Asp.Net Core Module را به درون پوشهی C:\Program Files (x86)\IIS Express کپی کنید.
- سپس پوشهی C:\Program Files\IIS\Asp.Net Core Module را به درون پوشهی C:\Program Files\IIS Express کپی کنید.
در فایل C:\Program Files\IIS Express\config\templates\PersonalWebServer\applicationhost.config
و همچنین در فایل C:\Program Files (x86)\IIS Express\config\templates\PersonalWebServer\applicationhost.config
- ذیل تگ <sectionGroup name="system.webServer">، سطر زیر را اضافه کنید:
- ذیل تگ <system.webServer><modules>، دو سطر زیر را اضافه کنید:
البته برای ذخیره سازی فایلهای موجود در Program Files، باید آنها را با دسترسی ادمین باز کنید. برای مثال اگر از ++nodepad استفاده کنید، به صورت خودکار این مساله را تشخیص داده و دسترسی صحیح را درخواست میکند.
تنظیم Rider برای یافتن مسیر صحیح AspNetCoreModuleV2 نصب شده
در برنامهی Rider، از منوی File، قسمت settings آن، گزینهی Build, Execution, Deployment | IIS Express را انتخاب و سپس مسیرهای x86 و x64 را به صورت زیر تنظیم کنید:
البته دراپ داونهای این صفحه، به صورت خودکار این مسیرها را پر میکنند. فقط کافی است، مسیر صحیح را از طریق آنها انتخاب کنید.
- اکنون به ریشهی پروژهی خود مراجعه کرده و فایل idea\config\applicationhost.config. را در صورت وجود حذف کنید (البته بهتر است کل پوشهی idea. و همچنین vs. را (در صورت وجود) حذف کنید؛ هر دو را با هم. مهم!). برنامهی Rider، این فایل تنظیمات موقتی IIS Express را بر اساس دو فایل config\templates\PersonalWebServer\applicationhost.config ای که اصلاح کردیم، به صورت خودکار تولید میکند و حاوی تمام تغییرات فوق خواهد بود.
- فایل web.config واقع در ریشهی پروژه وب نیز بهتر است یک چنین محتوایی را داشته باشد:
در اینجا ذکر تنظیم "hostingModel="InProcess سبب بروز خطا میشود و به نظر Rider هنوز از آن پشتیبانی نمیکند.
تنظیمات IIS Express در Rider
تنظیمات پورت IIS Express، در فایل Properties\launchSettings.json پروژههای وب، قابل مشاهده و تغییر است. اگر نیاز به کار با HTTPS باشد، برنامهی Rider، پیام کوچکی را که در آن لینک setup certificate قرار دارد، نمایش میدهد و با کلیک بر روی آن، یک مجوز موقتی self-signed certificate تولید و نصب خواهد شد.
و یا در Rider، از منوی بالای صفحه که تنظیمات Build را نمایش میدهد، میتوان IIS Express را به عنوان اجرا کنندهی پروژه، انتخاب کرد. پس از انتخاب آن، یکبار دیگر از همان dropdown میتوان گزینهی edit configuration را انتخاب کرد تا تنظیمات مخصوص IIS Express، ظاهر شود.
HTTP Error 500.21 - Internal Server Error Handler "aspNetCore" has a bad module "AspNetCoreModule" in its module list
پیشنیازهای کار با IIS Express توسط Rider
- نصب IIS Express به صورت جداگانه
- نصب بستهی هاستینگ ASP.NET Core برای IIS
این مورد برای اضافه شدن AspNetCoreModuleV2 به IIS Express خام فوق، الزامی است.
یک نکته: نگارش بستهی هاستینگ، باید با SDK و یا runtime نصب شده، مطابقت داشته باشد (بنابراین نصب SDK و یا Runtime نیز ضروری است).
معرفی بستهی هاستینگ ASP.NET Core به IIS Express
پس از نصب این بستهها، فایل واقع در مسیر زیر را برای یافتن واژهی AspNetCoreModule جستجو کنید (یک چنین فایلی در مسیر 64 بیتی C:\Program Files\IIS Express\config\templates\PersonalWebServer نیز وجود دارد):
%PROGRAMFILES(x86)%\IIS Express\config\templates\PersonalWebServer\applicationhost.config
%PROGRAMFILES(x86)%\IIS Express\Asp.Net Core Module\V2
- ابتدا پوشهی C:\Program Files (x86)\IIS\Asp.Net Core Module را به درون پوشهی C:\Program Files (x86)\IIS Express کپی کنید.
- سپس پوشهی C:\Program Files\IIS\Asp.Net Core Module را به درون پوشهی C:\Program Files\IIS Express کپی کنید.
- در آخر نیاز است دو فایل config\templates\PersonalWebServer\applicationhost.config را در پوشههای x86 و x64 مربوط به IIS Express به صورت زیر ویرایش کنیم:
- پیش از بسته شدن تگ globalModules در قسمت <system.webServer><globalModules>، دو سطر زیر را اضافه کنید:در فایل C:\Program Files\IIS Express\config\templates\PersonalWebServer\applicationhost.config
<add name="AspNetCoreModule" image="C:\Program Files\IIS Express\aspnetcore.dll" /> <add name="AspNetCoreModuleV2" image="C:\Program Files\IIS Express\Asp.Net Core Module\V2\aspnetcorev2.dll" />
<add name="AspNetCoreModule" image="C:\Program Files (x86)\IIS Express\aspnetcore.dll" /> <add name="AspNetCoreModuleV2" image="C:\Program Files (x86)\IIS Express\Asp.Net Core Module\V2\aspnetcorev2.dll" />
- ذیل تگ <sectionGroup name="system.webServer">، سطر زیر را اضافه کنید:
<section name="aspNetCore" overrideModeDefault="Allow" />
- ذیل تگ <system.webServer><modules>، دو سطر زیر را اضافه کنید:
<add name="AspNetCoreModule" lockItem="true" /> <add name="AspNetCoreModuleV2" lockItem="true" />
البته برای ذخیره سازی فایلهای موجود در Program Files، باید آنها را با دسترسی ادمین باز کنید. برای مثال اگر از ++nodepad استفاده کنید، به صورت خودکار این مساله را تشخیص داده و دسترسی صحیح را درخواست میکند.
تنظیم Rider برای یافتن مسیر صحیح AspNetCoreModuleV2 نصب شده
در برنامهی Rider، از منوی File، قسمت settings آن، گزینهی Build, Execution, Deployment | IIS Express را انتخاب و سپس مسیرهای x86 و x64 را به صورت زیر تنظیم کنید:
البته دراپ داونهای این صفحه، به صورت خودکار این مسیرها را پر میکنند. فقط کافی است، مسیر صحیح را از طریق آنها انتخاب کنید.
- اکنون به ریشهی پروژهی خود مراجعه کرده و فایل idea\config\applicationhost.config. را در صورت وجود حذف کنید (البته بهتر است کل پوشهی idea. و همچنین vs. را (در صورت وجود) حذف کنید؛ هر دو را با هم. مهم!). برنامهی Rider، این فایل تنظیمات موقتی IIS Express را بر اساس دو فایل config\templates\PersonalWebServer\applicationhost.config ای که اصلاح کردیم، به صورت خودکار تولید میکند و حاوی تمام تغییرات فوق خواهد بود.
- فایل web.config واقع در ریشهی پروژه وب نیز بهتر است یک چنین محتوایی را داشته باشد:
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified"/> </handlers> <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/> </system.webServer> </configuration>
تنظیمات IIS Express در Rider
تنظیمات پورت IIS Express، در فایل Properties\launchSettings.json پروژههای وب، قابل مشاهده و تغییر است. اگر نیاز به کار با HTTPS باشد، برنامهی Rider، پیام کوچکی را که در آن لینک setup certificate قرار دارد، نمایش میدهد و با کلیک بر روی آن، یک مجوز موقتی self-signed certificate تولید و نصب خواهد شد.
و یا در Rider، از منوی بالای صفحه که تنظیمات Build را نمایش میدهد، میتوان IIS Express را به عنوان اجرا کنندهی پروژه، انتخاب کرد. پس از انتخاب آن، یکبار دیگر از همان dropdown میتوان گزینهی edit configuration را انتخاب کرد تا تنظیمات مخصوص IIS Express، ظاهر شود.