عیب یابی درخواست های Fail شده با استفاده از Tracing
Tracing بر اساس درخواست ها، هم در سرور های IIS مستقل و هم در Windows Azure Web Site (WAWS) قابل دسترس می باشد و راهکاری را ارائه می دهد تا مشخص گردد که دقیقا چه اتفاقی برای درخواست های شما رخ داده و چرا؛ البته این مورد به این شرط می باشد که بتوانید مشکلی که رخ داده را مجدد ایجاد کنید. مشکلاتی همانند عملکرد ضعیف در برخی درخواست ها، یا خطاهای مربوط به Authentication در درخواست های دیگر، یا خطای ۵۰۰ سرور از ASP یا ASP.NET می توانند بسیار در عیب یابی دشوار باشند – مگر اینکه Trace ای از مشکل را ضبط کرده باشید.
Trace درخواست های Fail شده به صورتی طراحی شده اند تا در مواقعی که درخواست ها Fail می شوند در دیسک اطلاعات مربوط به علتFail شدن در دیسک ذخیره گردد که در اینجا شما معنای Fail شدن را از قبل تعیین می کنید. اگر بخواهید بدانید چرا وب سایت شما پیغام خطای ۴۰۴.۲ می دهد یا درخواست ها هنگ می کنند می توانید از Trace درخواست های Fail شده استفاده کنید.
پیش نیاز ها:
نصب IIS
شما می بایست IIS 7 یا بالاتر را نصب نمایید تا بتوانید مراحل ذکر شده در این مقاله را انجام دهید. آدرس http://localhost/ را در مرورگر خود وارد کنید تا مشخص گردد که آیا IIS در سرور شما نصب شده یا خیر. در صورتیکه نصب نشده بود می توانید با استفاده از مراحل نصب IIS اقدام به نصب این وب سرور نمایید. هنگامیکه IIS را نصب می کنید، دقت نمایید که موارد زیر نیز نصب گردند:
- NET (تحت Word Wide Web Services – Application Development Features – ASP.NET)
- Tracing (تحت World Wide Web Services – Health and Diagnostics – Tracing)
با حساب کاربری ADMINISTRATOR لاگین نمایید
دقت داشته باشید حساب کاربری که با آن به سرور متصل می شوید می بایست Administrator و یا در گروه کاربران Administrator قرارگرفته باشد.
توجه:عضو گروه Administrator بودن به شما دسترسی کامل مدیریتی به صورت پیش فرض اعطا نمی کند. شما می بایست نرم افزار ها را تحت Administrator باز نمایید. این کار را می توانید با کلیک-راست نمودن بر روی نرم افزار ها و سپس انتخاب گزینه Run as administrator انجام دهید.
فعال نمودن Failed-Request Tracing
بعد از اینکه شما اقدام به فعال سازی failed-request tracing نمایید، شما می بایست تعیین کنید که فایل های لاگ در کجا ذخیره شوند. در این مرحله شما برای Default Web Site این قابلیت را فعال می کنید و تعیین می کنید که فایل های لاگ در کجا ذخیره شوند. سپس شما Failure را تنظیم می کنید تا لاگ های failure را تولید نماید.
گام اول: فعال نمودن Failed-Request Tracing برای سایت و تنظیم محل ذخیره فایل لاگ
- Command prompt را با دسترسی administrator باز نمایید.
- دستور inetmgr را تایپ و اجرا کنید
- در بخش Connections، تحت Configure، بر روی Failed Request Tracing کلیک نمایید.
- در پنجره Edit Web Site Failed Request Tracing Settings، تنظیمات زیر را اعمال کنید:
- تیک گزینه Enable را انتخاب کنید.
- مقادیر پیش فرض را برای بخش های دیگر نگهدارید.
- بر روی OK کلیک نمایید.
لاگ گیری Failed-Request Tracing حالا برای Default Web Site فعال می شود.می توانید فایل applicationHost.config را در مسیر زیر بررسی نمایید تا تغییرات رخ داده در این فایل مشاهده فرمایید.
گام دوم: نوع Failure ها را مشخص نمایید
در این گام، شما نوع failure را برای URL خود مشخص می کنید، به علاوه مواردی که trace می شود.در اینجا ما یک پیغام خطایی از نوع ۴۰۴.۲ را عیب یابی می کنیم (این پیغام زمانی از IIS برگردانده می شود که یک Extension مورد نیاز برای بارگذاری در وب سرور فعال نشده باشد). این کار به شما کمک می کند تا متوجه شوید که چه extension ای را می بایست فعال کنید.
- یک command prompt با دسترسی administrator باز کنید.
- در صفحه ی cmd عبارت inetmgr را وارد نموده و enter نمایید.
- در پنجره Connections شاخه نام ماشین را باز نمایید و سپس شاخه Sites را باز نموده و بر روی Default Web Site کلیک نمایید.
- در صفحه ی باز شده بر روی Failed Request Tracing Rules کلیک نمایید.
- بر روی Finish کلیک نمایید.
- در پنجره ی Actions بر روی Add کلیک نمایید.
- در Wizard مربوط به Add Failed Request Tracing Rule در صفحه ی Specify Content to Trace گزینه All content (*) را انتخاب نمایید. بر روی Next کلیک نمایید.
- در صفحه ی Define Trace Conditions تیک گزینه Status code(s) را انتخاب کنید و مقدار ۲ را به عنوان کد خطایی که می بایست trace شود وارد نمایید.
- بر روی Next کلیک نمایید.
- در صفحه ی Select Trace Providers تحت Providers تیک گزینه WWW Server را بزنید. زیر Areas تیک گزینه Security را انتخاب کنید. (می توانید برای تهیه لاگ کاملتر باقی گزینه ها را نیز تیک بزنید)
- تحت Verbosity گزینه Verbose را انتخاب کنید.
- در آخر بر روی گزینه Finish کلیک نمایید. شما می بایست تعاریف زیر را برای Default Web Site مشاهده نمایید.
IIS Manager فایل تنظیمات را در مسیر زیر اعمال می کند:
%windir%\system32\inetsrv\config\applicationHost.config
برای انجام این کار از یک تگ <location> استفاده می کند و تنظیمات شما شبیه قطعه کد زیر می شود:
گام سوم: ایجاد پیغام خطا
برای آزمایش مورد می بایست پیغام خطا را دریافت نمود. بدین منظور می توانید صفحه ای که پیغام خطا وجود دارد را بارگذاری کنید.
در این مقاله از پیغام خطای ۴۰۴.۲ استفاده شده است.
گام چهارم: مشاهده فایل لاگ درخواست
- حالا که پیغام خطای خود را تولید کرده اید وارد مسیر زیر شوید:
%systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1این مسیری از است که هنگام تعریف لاگ جهت ذخیره آنها به IIS معرفی نموده اید. - چند نکته را در اینجا در نظر بگیرید: هنگامیکه IIS فایل لاگ را می نویسد، هر کدام از درخواست های Fail شده را در یک فایل می نویسد.
- بر روی فایل لاگ مربوط به پیغام خطای مورد نظر خود راست-کلیک نمایید و از گزینه Open With نرم افزار Internet Explorer را انتخاب کنید. اگر این اولین باری می باشد که فایل Failed Request Tracing را باز می کنید می بایست حتما about:internet را به لیست وب سایت ها مورد اطمینان خود اضافه نمایید. اگر تنظیمات امنیتی مرورگر شما به صورت پیش فرض باشد در اولین بارگذاری فایل لاگ پیغام هشدار زیر را دریافت می کنید:
- در پنجره Internet Explorer بر روی Add… کلیک نموده و about:internet را به وب سایت های مورد اطمینان خود اضافه کنید. این اجازه می دهد تا XSL فعال شود و کار کند. شما صفحه زیر را بعد از انجام این مرحله مشاهده خواهید کرد.
یک خلاصه ای از پیغام خطای دریافت شده در بالای صفحه نمایش داده می شود در ادامه نیز جدول Errors & Warnings هرگونه رویدادی که Warning، Error یا Critical Error باشد را نشان می دهد. در این مثال سطح امنیتی Warning به علت ISAPI RESTRICTION نشان داده شده است. تصویری که قصد بارگذاری آن بود آدرس زیر است:%windir%\system32\inetsrv\asp.dll - فایل خام XML را با یک ویرایشگر متن باز نموده و محتوای هر کدام از رویداد ها را مشاهده کنید.
جمع بندی
در این مقاله شما دو کار انجام دادین: failed request tracing را تنظیم نمودین تا هنگامیکه IIS پیغام خطای ۴۰۴ را باز می گرداند آنرا ضبط کند؛ و خطای ضبط شده توسط IIS را نیز مشاهده نمودید. همچنین مشاهده نمودین که فایل freb*.xml پیغام خطای دیگری را در بر نداشت و تنها درخواستهایی را trace نمود که شما تعیین کرده بودین. هنگامیکه فایل لاگ را بررسی می کنید متوجه می شوید علت بروز پیغام خطا از کجاست و همانند این مثال اگر مشکل به علت غیرفعال بودن یک extension در IIS باشد می توانید آنرا فعال نمایید.
در مورد خطای ۴۰۴ مقاله ارور ۴۰۴ چیست را بخوانید.