نحوه Debug کردن DLL های شیرپوینت (C# code behind,Event Handlers,..)

زمانیکه شما برای صفحات سایت شیرپوینتی  Code Behind به زبان C# و یا Event Handler می نویسید و سپس اونهارو به صورت فایل DLL تولید می کنید، نیاز دارید تا برای بررسی نحوه اجرای این DLL ها، آنها رو Debug نمایید و به خطاهای احتمالی موجود در کد برنامه پی ببرید. این کار رو معمولاً در پروژه های .NET در خود ویژوال استودیو انجام می دادید، اینکه چطور در شیرپوینت این کار رو انجام بدید در ادامه برای شما دوستانم توضیح خواهم داد.

پس از اینکه کد برنامه رو در (VS) Visual Studio نوشتید و  برنامه رو کامپایل و در نهایت Build کردید فایل dll به همراه یک فایل pdb در مسیر دایکتوری Bin برنامه ایجاد میشود. برای Debug کردن dll فایل نیاز به ابزارهای زیر داریم :

·         فایل dll تولید شده توسط VS

·         فایل pdb تولید شده توسط VS

·         سورس کد برنامه

·         ابزار ویژوال استودیو ۲۰۰۵ یا ۲۰۰۸

من با یک مثال نحوه این کار رو توضیح می دم.

فرض کنیم Application مورد نظرمون رو Build کردیم و فایل dll شده رو داخل GAC کپی کردیم.((C:\windows\assembly حال باید دایکتوری GAC رو مشاهده کنیم تا بتوانیم فایل Pdb رو در کنار فایل dll داخل GAC کپی نماییم. برای اینکار مراحل زیر رو انجام بدید :

۱- Command Prompt را باز کنید (CMD) و دستور زیر رو تایپ کنید :

Subst X: C:\windows\assembly\GAC_MSIL

با اجرای دستور فوق شما در My Computer یک درایو جدید با نام X را مشاهده می کنید. وارد این درایو شوید فایلهای داخل GAC را مشاهده خواهید کرد. پوشه با نام سولوشن یا Application خودتون رو پیدا کنید. آنرا باز کنید و داخل این فولدر، یک فولدر با نام ترکیبی از Public Key و ورژن فایل DLL شده، مشاهده خواهید کرد. آنرا باز کنید و داخل آن فایل pdb را کپی نمایید.(آدرس به صورت زیر)

c:\windows\assembly\gac_msil\<your_dll>\<version>__<public_key>

۲- پس از کپی کردن فایل Pdb در کنار فایل DLL ، حال Application خود را در VS باز کنید و در کد برنامه هرجا که نیاز دارید Breakpoint قرار بدید.

۳- Command Prompt ویندوز را باز کنید و دستور iisapp رو اجرا کنید. با اجرای این دستور شما لیستی از پروسسهای w3sp.exe را مشاهده خواهید کرد که هر کدام مربوط به یک Site Collection یا Web Application شیرپوینتی در حال اجرا توسط IIS می باشد. شماره Process سایتی که کد DLL را برای آن نوشته اید و قصد دیباگ آنرا دارید در جایی یادداشت کنید.

۴- در محیط VS از منوی Debug گزینه Attach to Process را انتخاب کنید. در پنجره باز شده از قسمت Available Processes پروسس w3sp.exe با شماره پروسس مربوط به سایت مورد نظر که در مرحله قبل یادداشت کردید را از لیست انتخاب نمایید و در انتها دکمه Attach را کلیک کنید.

۵- اکنون در سایت شیرپوینتی مورد نظر، صفحه ای که در آن از فایل DLL ساخته شده استفاده کرده اید را باز کنید و عملیات مرتبط با کد نوشته شده را انجام دهید. خواهید دید که در حین اجرای عملیات درون کد، به صورت خودکار به محل Breakpoint در کد برنامه منتقل می شوید! حال به راحتی می توانید کد نوشته شده را دیباگ کنید. J

اگر سوال یا نظری در این زمینه داشته مطرح کنید.

شاد و موفق باشید.

پاسخ دهید