امروز در این مقاله میخواهیم در مورد Elmah صحبت کنیم ، اول اینکه بدونیم Elmah چیست و چه کاربردی هایی داره و چرا از آن استفاده میکنیم .
همیشه چه خوب میشد وقتی سایتمون دچار مشکل میشد یکی به ما خبر میداد که ، این بخش سایت این خط کد سایت شما دچار مشکل شده است.
این ابزار برای ما این کارو میکند، یعنی میاد خطاهای سایت مارو در یک دیتابیس که از نوع SQLLite است در خودش ذخیره میکند ، حتی این امکان وجود دارد که ایمیل هم بزنه و خطارو اعلام کند.
یه توضیح کلی در رابطه با این ابزار بهتون دادم در اادمه میریم سراغ آموزش ، آموزش در ASP.NET و همچنین ASP.NET MVC به صورت مشابه است.همراه من در ادامه باشید.
روش نصب Elmah:
روش نصب بسیار ساده است.
این کار توسط Nuget امکان پذیر است ( برای استفاده نیاز به اینترنت دارید) ، البته میتوانید فایل را به صورت آفلاین هم دانلود و نصب کنید.
نصب از طریق Nuget بهتر است ،زیرا خودش میاد کد هایی که باید در webConfig قرار بگیرد ، قرار میدهد.
یک پروژه جدید ایجاد کنید و یک فرم روی صفحه بسازید.
باز هم تکرار میکنم هم میتوانید در MVC و ASP از این روش استفده کنید.
روی solution پروژه کلیک راست روی Nuget کلیک کنید.
Elmah
از صفحه ای که باز شده جستجو میکنیم
منتظر باشید تا مراحل نصب تموم بشه
خوب نصب انجام شد و به پایان رسید.
بعد از اینکه مراحل را انجام دادید یک نگاهی به فایل web.config بندازید ، دیدید ؟ چه تغییراتی اضافه شده ؟
من کدشو براتون قرار دادم :
configuration configSections sectionGroup name=elmah section name=security requirePermission=false type=Elmah.SecuritySectionHandler, Elmah / section name=errorLog requirePermission=false type=Elmah.ErrorLogSectionHandler, Elmah / section name=errorMail requirePermission=false type=Elmah.ErrorMailSectionHandler, Elmah / section name=errorFilter requirePermission=false type=Elmah.ErrorFilterSectionHandler, Elmah / /sectionGroup /configSections system.web compilation debug=true targetFramework=4.5 / httpRuntime targetFramework=4.5 / httpModules add name=ErrorLog type=Elmah.ErrorLogModule, Elmah / add name=ErrorMail type=Elmah.ErrorMailModule, Elmah / add name=ErrorFilter type=Elmah.ErrorFilterModule, Elmah / /httpModules/system.web system.webServer validation validateIntegratedModeConfiguration=false / modules add name=ErrorLog type=Elmah.ErrorLogModule, Elmah preCondition=managedHandler / add name=ErrorMail type=Elmah.ErrorMailModule, Elmah preCondition=managedHandler / add name=ErrorFilter type=Elmah.ErrorFilterModule, Elmah preCondition=managedHandler / /modules /system.webServerelmah !-- See http://code.google.com/p/elmah/wiki/SecuringErrorLogPages for more information on remote access and securing ELMAH. -- security allowRemoteAccess=false / /elmahlocation path=elmah.axd inheritInChildApplications=false system.web httpHandlers add verb=POST,GET,HEAD path=elmah.axd type=Elmah.ErrorLogPageFactory, Elmah / /httpHandlers !-- See http://code.google.com/p/elmah/wiki/SecuringErrorLogPages for more information on using ASP.NET authorization securing ELMAH. authorization allow roles=admin / deny users=* / /authorization -- /system.web system.webServer handlers add name=ELMAH verb=POST,GET,HEAD path=elmah.axd type=Elmah.ErrorLogPageFactory, Elmah preCondition=integratedMode / /handlers /system.webServer /location/configuration
یه قسمتی تو کداتو هست به نام
location path=elmah.axd inheritInChildApplications=false
این مسیر نمایش ارور هاست یعنی میتونید ارور های که در سایت رخ میده رو بینید ، خب الان همه میتونن ببینن پس مدیر چه نقشی داره اینجا ؟
یه تیکه کد دیگه هست تو کد وب کانفیگتون که به صورت کامنت شدست یعنی غیر فعاله کد زیرو ببینید،همینه ؟
authorization allow roles=admin / deny users=* / /authorization/
خوب الان باید نام Role که برای دسترسی در دیتابیس تعیین کردید را قرار بدید و این کد را از حالت کامنت در بیارید.خوب دیگه الانم فقط مدیر میتونه ببینه ، یه چندتا ارور بزنید به پروژه تون ( یه چیز کاملا طبیعی :D)
خوب الان برای ارسال ایمیل چه کاری باید انجام بدیم ؟
کار سختی نیست فقط کد های زیرو که براتون قرار دادم را در webconfig بالای تگ :
location path=elmah.axd inheritInChildApplications=false قرار بدید. security allowRemoteAccess=false / errorMail from=EmailErsalKonnade to=EmailDaryafkonande async=true / /elmah system.net mailSettings smtp deliveryMethod =Network network host=AdressSite userName=EmailErsalkonande password=Password / /smtp /mailSettings /system.net/
خوب دیگه کاره دیگه ای نداریم ، از ارور هاتون لذت ببرید 🙂 فایل هم ضمیمه کردم هرچند نیازی بهش نیست.
خوشحال میشم نظرات و سوال خودتونو مطرح کنید.
ممنون استاد عالی بود
از ارور هاتون لذت ببرید خیلی خوب بود
۹
قربانه شما موفق باشید 🙂
لایک
سلام جناب شریفی ممنون بابت این مقاله ی خوب.
چند تا سوال
-اگه تو لوکال باشیم، قیلد host=”AdressSite” رو چی وارد کنیم؟
ونمیشه ک ارسال کننده و دریافت کننده کی باشه نه ؟ 🙂 پس ی ایمیلی دیگه بسازم ک از اونب ایمیل خودم بفرسته؟
و برای ارسال ایمیل تنظیمات ایگه ای مثل تنظیمات smtp.gmail.com لازمه؟
۱۰
ادرس را خالی بزارید.
اگر از ایمیل سایت استفاده کنید خیلی سادست.و نیازی به تنظیمات خاصی ندارید.
۹