عنوان:

‫کدام w3wp.exe مرتبط با Application جاری من است ؟


نویسنده: محمد باقر سیف اللهی
تاریخ: ۱۳۹۲/۰۱/۲۳ ۱۵:۱۰
آدرس: www.dntips.ir
مواردی وجود دارد که نیاز به 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 از تسک منیجر هم میتونید استفاده کنید،ستون‌های مورد نظر رو فقط شو کنید.