کدام w3wp.exe مرتبط با Application جاری من است ؟
مواردی وجود دارد که نیاز به Attach کردن یک پروسس به Application خود دارید. برای این منظور باید از بین w3wp‌های موجود که IIS اجرا کرده پردازه مرتبط را یافته و ان را Attach نمایید در غیر این صورت امکان debug کردن Application  مشکل خواهد بود. در این پست راه حلی برای این مورد بیان شده است .
فرض کنید می‌خواهید از بین تعدادی پروسس یکی را برای debug کردن انتخاب نمایید .
(برای انتخاب پروسس از منوی Debug روی Attach to Process کلیک کنید و تیک نمایش تمام پروسس‌ها را بزنید ) 




برای پیدا کردن اینکه کدام پروسس متعلق به Application مورد نظر ماست باید از برنامه Process Explorer کمک بگیریم . پس از اجرای این برنامه روی ستون‌های آن کلیک سمت راست کنید و Select Column را انتخاب نمایید 

گزینه Command Line را انتخاب نمایید و پس از OK کردن به دنبال پردازه‌های w3wp در حال اجرا بگردید . 

حال می‌توانید پروسه مورد نظر خود را براحتی بیابید و شناسه پردازه را از آنجا بخوانید

 


اکنون شناسه مشخص شده و می‌توانید به Debug کردن بپردازید


 

  • #
    ‫۱۱ سال و ۶ ماه قبل، جمعه ۲۳ فروردین ۱۳۹۲، ساعت ۲۰:۳۸
    سلام.
    روش‌های ساده‌تری هم برای اینکار وجود داره. کافیه تا اونجاییکه علاقمند هستید کدتون break بخوره، این کد رو بنویسید:
    if (Debugger.IsAttached)
        Debugger.Break();
    else
        Debugger.Launch();
    بدین ترتیب هر وقت اجرا به این خط برسه، پنجره Visual Studio Just-In-Time Debugger باز میشه و Debugger بطور خودکار به App شما Attach میشه و ...

    موفق باشید.
    • #
      ‫۱۱ سال و ۶ ماه قبل، جمعه ۲۳ فروردین ۱۳۹۲، ساعت ۲۳:۱۷
      به خاطر بعضی دست کاری هایی که روی IIS انجام داده بودم (+ ) VS در مود Debug قرار نمی‌گرفت و پس از فشردن F5 پیغام خطا نمایش می‌داد (با این مضمون که امکان Attach کردن به پروسس وجود ندارد). 
    • #
      ‫۱۱ سال و ۶ ماه قبل، شنبه ۲۴ فروردین ۱۳۹۲، ساعت ۱۸:۲۱
      راه حلی دیگر
      cd c:\windows\system32\inetsrv
      appcmd list wp
      • #
        ‫۱۱ سال و ۶ ماه قبل، پنجشنبه ۲۹ فروردین ۱۳۹۲، ساعت ۲۳:۰۱
        بجای Process Explorer از تسک منیجر هم میتونید استفاده کنید،ستون‌های مورد نظر رو فقط شو کنید.