1 دقیقه میانگین مدت زمان مطالعه است

فرض کنید برنامه‌ای که نوشته‌اید در محیط لوکال به درستی کار می‌کند و فقط زمانی که آن را پابلیش می‌دهید، در زمان اجرا با خطا مواجه می‌شود.
یکی از قابلیت‌های خوب .net و Visual Studio قابلیت دیباگ برنامه‌ها و Process ها است که می‌توانید آنها را دیباگ کنید.
بدین منظور از محیط Visual Studio از سربرگ Debug گزینه Attach To Process را انتخاب کنید.
سپس تیک گزینه Show Processes fpr all users را انتخاب کنید.
اکنون از لیست برنامه های سرویس مورد نظر خود را انتخاب کنید، بطور مثال w3wp.exe برای IIS است.

mhkarami97

البته حتما باید Visual Studio را بصورت Admin اجرا کنید. در غیر این صورت با پیام زیر روبرو می‌شوید که باید بر روی Restart کلیک کنید.

mhkarami97

اکنون بر روی Attach کلیک کنید.

mhkarami97

با اینکار در هر نقطه از کد که Break Point بزارید می‌توانید آن را دیباگ کنید.
البته دقت کنید قابلیت دیباگ در نسخه پابلیش شده وجود داشته باشد. در غیر این صورت Break Point ها غیر فعال می‌شوند.

دیباگ برنامه پابلیش شده در سرور دیگر

اگر برنامه شما در سرور پابلیش شده است و می‌خواهید آن را دیباگ کنید، می‌توانید از visual studio remote debugger استفاده کنید.
کافی است این برنامه را بر روی سرور نصب کنید و سپس آن را بصورت Admin اجرا کنید.
اکنون کافی است شبیه به آموزش بالا که پراسس w3wp را انتخاب کردید، بجای آن نام سرور خود مثلا ss2-app-test را وارد کنید تا لیست پراسس‌های آن برای انتخاب نشان داده شود.
فقط دقت کنید که برنامه حتما باید در حالت Debug پابلیش شده باشد تا فایل‌های PDB برای دیباگ در دسترس باشند.

remote-debugging

لینک‌های مفید:

attach-to-running-processes-with-the-visual-studio-debugger

troubleshooting-breakpoints

remote-debugging-aspnet-on-a-remote-iis

how-to-enable-debugging-for-aspnet-applications