در برخی شرایط، نظارت بر درخواستها و پاسخهای HTTP از یک کامپیوتر مشتری میتواند مفید باشد. یکی از مزایای اصلی این روش این است که شما را قادر می سازد کل ترافیک HTTP تولید شده توسط یک درخواست صفحه خاص را مشاهده کنید. این می تواند به شما در تشخیص طیف وسیعی از مشکلات کمک کند، مانند:
- زمان بارگذاری آهسته در صفحات وب خاص
- خطاهای جزئی درخواست، مانند نمایش داده نشدن تصاویر.
- رفتارهای ذخیره سازی غیرمنتظره
- مشکلات دانلود منابع از شبکه های تحویل محتوا (CDN).
طیف وسیعی از ابزارها وجود دارد که می توانید برای انجام این نوع ردیابی درخواست سمت مشتری از آنها استفاده کنید. به عنوان مثال، Fiddler یک ابزار رایگان محبوب است که طیف وسیعی از عملکردهای نظارت بر درخواست و اشکال زدایی را ارائه می دهد. برای ردیابی ساده درخواست، می توانید از ابزارهای توسعه دهنده F12 که در اینترنت اکسپلورر تعبیه شده است استفاده کنید. در اینترنت اکسپلورر 9 و اینترنت اکسپلورر 10، F12 Developer Tools شامل یک برگه شبکه است که به شما امکان می دهد تمام ترافیک HTTP را که از پنجره مرورگر ایجاد می کنید، ضبط کنید. اگر یک جلسه ردیابی درخواست را شروع کنید و سپس به یک صفحه وب - در یک سایت شیرپوینت یا در هر وب سایت دیگری بروید - ممکن است از میزان ترافیکی که درخواست تک صفحه شما ایجاد می کند شگفت زده شوید. یک درخواست منفرد به یک صفحه وب معمولاً منجر به درخواستهای بیشتر برای تصاویر، فایلهای جاوا اسکریپت، فایلهای CSS، احتمالاً همراه با تماسهایی با خدمات یا محتوای تبلیغاتی میشود. تمام ابزارهای ردیابی سمت مشتری، تفکیک دقیقی از این درخواست ها، با زمان بندی، کدهای پاسخ و جزئیات مختلف دیگر برای هر درخواست ارائه می دهند. این تفکیک می تواند به شما کمک کند تا دلایل کاهش سرعت بارگذاری صفحه و سایر مشکلات بارگذاری صفحه را جدا کنید.
ضبط و تجزیه و تحلیل ترافیک شبکه میتواند به شما در تشخیص طیفی از مشکلات کمک کند، اما هیچ بینشی در مورد نحوه تولید و ارائه صفحات خاص شیرپوینت ارائه نمیکند. برای بررسی مسائل پیچیدهتر، میتوانید از داشبورد توسعهدهنده شیرپوینت برای ارائه اطلاعات دقیق در مورد فرآیند ساخت صفحه و اجرای کد پشت درخواستهای هر صفحه استفاده کنید. داشبورد Developer در شیرپوینت 2010 معرفی شد، اما کاملاً برای شیرپوینت 2013 دوباره طراحی شده است. اکنون در یک پنجره جداگانه اجرا می شود تا با خود صفحه تداخل نداشته باشد. برای بازیابی نتایج از یک سرویس اختصاصی Windows Communication Foundation (WCF) به نام Diagnosticsdata.svc استفاده می کند. در سطح بالا، داشبورد برنامهنویس تجزیهوتحلیلی از درخواستهای فردی را به روشی مشابه ابزارهای ردیابی سمت مشتری ارائه میدهد. برای هر یک از این درخواست های فردی، می توانید اطلاعات اضافی زیر را مشاهده کنید:
- اطلاعات سرور این برگه اطلاعات کلی در مورد درخواست مانند زمان شروع، مدت زمان، زمان CPU، حافظه و شناسه ارتباط مرتبط با درخواست را نمایش می دهد.
- محدوده ها. این برگه یک تفکیک از مدت زمان صرف درخواست در هر نقطه از پشته تماس را ارائه می دهد.
- SQL. این برگه جزئیات تماس های پایگاه داده ای که در طول پردازش درخواست انجام شده را ارائه می دهد.
- SPREquests. این برگه جزئیات هر درخواست پسزمینهای را که علاوه بر درخواست صفحه رخ داده است، ارائه میکند.
- ادعا می کند. این برگه هر تماسی را که در طول درخواست انجام شده است را شناسایی می کند. برنامهنویسان از تماسهای Assert برای نوشتن جزئیات شرایط غیرمنتظره در پنجره خروجی استفاده میکنند.
- تماس های خدماتی این برگه جزئیات تماسهایی که در طول درخواست با سرویسهای وب انجام میشود را ارائه میکند.
- ULS. این برگه شامل تمام ورودیهای گزارش ردیابی مرتبط با درخواست فعلی است.
- Cache Calls. این برگه جزئیات تماسهای کش انجام شده در طول درخواست را ارائه میکند.
برای در دسترس قرار دادن Developer Dashboard، SharePoint 2013 Management Shell را باز کرده و دستورات زیر را اجرا کنید.
فعال کردن داشبورد برنامهنویس
- $content = ([Microsoft.SharePoint.Administration.SPWebService]::ContentService)
- $appsetting = $content.DeveloperDashboardSettings
- $appsetting.DisplayLevel =
- [Microsoft.SharePoint.Administration.SPDeveloperDashboardLevel]::On
- $appsetting.Update()
پس از فعال کردن داشبورد توسعهدهنده، شیرپوینت یک نماد را به گوشه سمت راست بالای هر صفحه اضافه میکند. میتوانید با کلیک کردن روی نماد، داشبورد برنامهنویس را راهاندازی کنید. برای غیرفعال کردن Developer Dashboard، SharePoint 2013 Management Shell را باز کرده و دستورات زیر را اجرا کنید.
غیرفعال کردن داشبورد برنامه نویس
- $content = ([Microsoft.SharePoint.Administration.SPWebService]::ContentService)
- $appsetting = $content.DeveloperDashboardSettings
- $appsetting.DisplayLevel =
- [Microsoft.SharePoint.Administration.SPDeveloperDashboardLevel]::Off
- $appsetting.Update()