بایگانی

بایگانی دسامبر

استفاده از Quartz.Net برای زمانبندی وظایف در وب سایت ها

Using Quart.net for job sheduler same as cron job

می دانید که وب سایت ها فاقد ابزار زمانبندی برای اجرای تسک ها یا وظایف می باشند. مثلا فرض کنید که می خواهید یک وظیفه تعریف شده مانند ارسال ایمیل یا اس ام اس در یک بازه زمانی یا در زمانهای خاص را انجام دهید. برای این کار چه باید کرد؟

۱- استفاده از task scheduler  ویندوز و برقرای ارتباط آن با وب سایت.

این روش یک ایراد دارد و آن اینست که اگر وب شما روی یک سرور هاستینگ باشد شما اجازه و یا دسترسی تعریف یک task scheduler را روی سرور نخواهید داشت.

۲- کد نویسی شخصی.

این روش نیز بسیار پیچیده است و در صورتی که کد نویسی درست انجام نشده باشد احتمال هدر دادن ریسورها از جمله ram و cpu بسیار بالاست

۳- استفاده از محصولات تولیدی

ما برای آموزش استفاده از محصولات تولیدی را توضیح می دهیم

یکی از محصولات تولیدی در این زمینه Quartz.net می باشد. در واقع quartz یک پروژه برای جاوا می باشد که برای دات نت نیز پیاده سازی شده است و شما از طریق Nuget و از داخل VS به آن دسترسی دارید. متاسفانه وب سایت Quartz.Net تقریبا ( تا این لحظه ای که این مطلب نوشته می شود) فاقد یک مثال عملی و روشن برای VS می باشد، بر همین اساس ممکن است که کسانی که تازه وارد این مقوله شده اند براحتی نتوانند با این ابزار ارتباط برقرار کنند.

مزید بر مشکل فوق بسیاری از رفرنس هائی که در جاهای مختلف اینترنت به آن میشود با آخرین ورژن آن ناسازگاری داشته و حتی تکه کدهائی که در سایت ها وجود دارد ممکن است برای شما مشکل آفرین باشد.

برای همین در زیر بطور خیلی ساده و روشن نحوه استفاده از آن بیان می شود. امید است مورد استفاده قرار گیرد.

۱- داخل پروژه خود و داخل VS از طریق ناگت  Quartz.Net را سرچ کرده و نصب کنید.

۲- در Solution Explorer زیر شاخ عنوان پروژه خود یک دایرکتوری به نام Jobs ایجاد کنید ( اختیاری است)

۳- یک فایل از نوع کلاس را داخل آن ایجاد کنید مثلا SendSMS

4- کدهائی مشابه زیر را در آن واردکنید.

خوب این کلاسی است که Quartz.net آنرا فراخوانی خواهد کرد، و شما می توانید داخل آن بدلخواه کدهای خودتان را بنویسید. مثلا به دیتابیس وصل شده و بر اساس دسترسی به جداول مثلا اس ام اس یا ایمیل بفرستید.

توجه داشته باشید که شما این کلاس را براحتی داخل پروژه MVC می توانید استفاده کنید. اینکه آیا می توان یک Action را نیز فراخوانی کرد هنوز تست نکرده ام. یعنی ارث بری یک کلاس کنترلر از جفت Controller و IJob

5- فایل Global.asax را باز کرده و کدهای زیر را در آن وارد کنید. این همان جائی است که دقیقا تازه وارد ها نمی دانند که باید از همینجا شروع کنند

همین.

ما یکی از پیچیده ترین زمانبندی ها را با استفاده از همین تکنولوژی راه اندازی کردیم.

موفق باشید

 

 

 

 

 

 

 

Categories: MVC Tags:

دستورات ضروری SQL Server Replication

رHow to remove table name from replication table

دستورات زیر بمنظور رفع پاره ای اشکالات ناشی از ریستور کردن دیتابیس ها و یا مشکلات عمده ای که در کار با حذف رپلیکیشن ها پیش می آید مفید است.

دستور زیر بطور خیلی ساده نام جدولی را از رپلیکیشن حذف می کند.

فرمت کلی این دستور بصورت زیر است

دستور زیر در Publisher اجرا می شود و یک subscription که pull یا push هست را از transactional publication حذف می کند.

البته فرمت کلی دستور بشکل زیر هست که در آن از متغیر های sqlcmd scripting variables $(MyVariable) form استفاده شده است برای کسب اطلاعات بیشتر به sql management studio و به بخش Executing Replication scripts دی تاپیک Programming Replication Using System Stored Procedures رجوع کنید.

دستور زیر می تواند در حذف یک subscription  و publication از یک replication مفید باشد.

دستور زیر برای ایجاد یک publication با ذکر پارامترها می تواند کاربرد داشته باشد.

 

 

 

 

 

 

 

 

Categories: MSSQL Server Tags:

استفاده از دستور sp_change_users_login برای کاربر SQL Server

How to use  sp_change_users_login

معمولا وقتی دیتابیسی ریستور می شود کاربر مربوط به آن از طریق وب سایت و یا اپلیکیشن ممکن است قابل دسترسی نباشد. برای این منظور مجبور هستیم که کاربری با آن نام بسازیم و آنرا به دیتابیس مپ کنیم فرض کنید که کاربر UserA داخل دیتابیس databaseA وجود دارد. دستور زیر را از روبروی دیتابیس مربوطه اجرا می کنیم.

با تشکر از آقای مهندس میرنقی مدیر عامل محترم شرکت مدیریت پایگاه داده ها

در واقع این دستور مربوط به کاربر به اصطلاح orphan هست.

با استفاده از دستور زیر هم می توان این کاربران را لیست کرد

Categories: MSSQL Server Tags:

تنظیم MSDTC روی دو تا سرور

How to Config MSDTC = Microsoft Distributed Transaction Coordinator

می دانید که MSDTC زمانی که دو تا سرور بصورت Linked Server بهم وصل می شوند مورد استفاده قرار می گیرد. عدم تنظیم آن باعث می شود که دو تا سرور بدرستی کار نکنند.

برای انجام تنظیمات MSDTC تنظیمات را بصورت زیر انجام می دهیم. فرض کنید دو تا سرور A و B دارید

سرویس زیر را روی سرور A اجرا می کنیم

حال تنظیمات را مطابق شکل زیر انجام می دهیم ( توجه داشته باشید که دقیقا این تنظیمات باید روی سرور B  انجام شود.

 

 

حال روی سرور B تنظیمات مربوط به سرور ریموت را انجام می دهیم. باز هم توجه داشته باشید که دقیقا مشابه تصویر فوق برای سرور B نیز باید انجام شود.

با تشکر از آقای وحید نصیری از www.dotnettips.info

 

Categories: Windows Tags:

رفع خطای ۸۰۰۴E00F – COM+ هنگام استفاده از MSDTC

۸۰۰۴E00F – COM+ was unable to talk to Microsoft Distributed Transaction Coordinator

 

در بعضی مواقع حین کار با Component Service بمنظور انجام تنظیمات MSDTC ممکن است که در زیر شاخه Computers شاخه MyCompter متوقف Stop شده باشد و اگر بخواهید آنرا فعال کنید مواجه با خطای فوق خواهید شد. تحت چنین شرایطی می توانید راه حل زیر را امتحان کنید

برگرفته شده از سایت مایکروسافت

Categories: Windows Tags:
IP Blocking Protection is enabled by IP Address Blocker from LionScripts.com.