IIS Express ปิดเว็บไซต์ทำงานทันทีหลังจากหยุดแอปพลิเคชันเว็บ


173

ฉันใช้ visual studio 2012 ในวันแรกเมื่อฉันต้องการหยุดแอปพลิเคชันใน IDE แอปพลิเคชันยังคงทำงานบน IIS Express ฉันสามารถเรียกดูและทำงานกับแอปพลิเคชันที่ทำงานได้ แต่ตอนนี้ฉันทำไม่ได้ IIS ปิดแอปพลิเคชันทันทีถ้าฉันกดปุ่มหยุด เนื่องจากฉันจำได้ว่าฉันไม่ได้ทำการเปลี่ยนแปลงใด ๆ ในการตั้งค่า ฉันควรทำเช่นนั้นทำงานเหมือนวันแรก


1
ลอง 'ดูในเบราว์เซอร์' แทน 'เล่น' คุณเปลี่ยนเบราว์เซอร์เริ่มต้นหรือไม่ IE ถูกปิดโดยอัตโนมัติเมื่อหยุด Chrome ไม่ใช่
Emanuele Greco

ไม่ฉันใช้ FF แต่บางครั้งฉันจำเป็นต้องดีบักแอปพลิเคชัน
กระบี่

ฉันคิดว่านี่เป็นสิ่งที่เกี่ยวข้องกับ IIS Express
กระบี่

1
แทนที่จะคลิกปุ่มหยุดคุณสามารถใช้ Detach All ในเมนู Debug
jessehouwing

1
มันแยกตัวดีบักเกอร์ออกจากกระบวนการที่กำลังดีบั๊ก แต่ไม่ฆ่ากระบวนการที่กำลังดำเนินการอยู่
jessehouwing

คำตอบ:


344

ฉันเพิ่งเผชิญกับสถานการณ์ที่คล้ายกันเมื่อทันใดนั้น IIS Express ของฉันหยุดทำงานทันทีหลังจากฉันหยุดการดีบัก เรื่องนี้เกิดขึ้นหลังจากที่ผมเปิด"เปิดใช้งานแก้ไขและดำเนินการต่อ" ดังนั้นหากคุณปิดใช้งานสิ่งนี้คุณจะเห็นว่า IIS Express ยังคงทำงานอยู่แม้หลังจากการดีบักจะหยุดทำงาน

คลิกขวาที่โครงการของคุณ> คลิกคุณสมบัติ> เลือกแท็บ 'เว็บ' ทางด้านซ้าย> ยกเลิกการEnable Edit and Continueทำเครื่องหมายที่ช่องทำเครื่องหมาย


3
ฉันสามารถยืนยันได้ว่านี่เป็นการแก้ไขปัญหาสำหรับฉัน
Maxime Rouiller

51
งานนี้ !! คลิกขวาที่โครงการของคุณ> คลิกคุณสมบัติ> เลือกแท็บ 'เว็บ' ทางด้านซ้าย> ยกเลิกการทำเครื่องหมายที่ช่อง 'เปิดใช้งานการแก้ไขและดำเนินการต่อ'
nv.snow

6
มันได้ผล. ใน Visual studio 2013 เปิด "เครื่องมือ -> ตัวเลือก" เลือกในต้นไม้ "แก้ไขข้อบกพร่อง -> แก้ไขและดำเนินการต่อ" และยกเลิกการทำเครื่องหมายที่กล่อง "เปิดใช้งานการแก้ไขและดำเนินการต่อ"
Renzo Ciot

3
คุณสามารถอ่านเกี่ยวกับคุณลักษณะนี้ในรายละเอียดเพิ่มเติมได้ที่นี่: blogs.msdn.com/b/webdev/archive/2013/07/11/...
ก็

5
ไม่นี่เป็นวิธีแก้ปัญหาที่ไม่ดี - ดูวิธีแก้ไขที่ถูกต้องโพสต์โดย @jessehouwing ด้านล่าง
Josh M.

85

ใน VS2010 และ VS2012 ตัวเลือกการแก้ไขและดำเนินการต่อจะถูกปิดใช้งานตามค่าเริ่มต้นเมื่อสร้างโครงการแอปพลิเคชันเว็บใหม่ ใน VS2013 จะเปิดตามค่าเริ่มต้น

คุณสามารถค้นหาตัวเลือกนี้ได้บนแท็บเว็บในหน้าต่างคุณสมบัติของโครงการเว็บ

แก้ไขและดำเนินการต่อตัวเลือก vs2013

ด้วย "เปิดใช้งานการแก้ไขและดำเนินการต่อ" เปิดตัวดีบัก VS เริ่มโปรแกรมประยุกต์เว็บของคุณใน IIS Express เมื่อคุณหยุดการดีบัก IIS Express จะถูกปิดเช่นกัน ด้วยพฤติกรรมนี้คุณจะเห็นถาดระบบ IIS Express ปรากฏขึ้นระหว่างการดีบักและหายไปหลังจากการดีบัก ลักษณะการทำงานนี้เหมือนกับใน VS2012 เมื่อเปิดใช้งานตัวเลือกแก้ไขและดำเนินการต่อ

ถ้าคุณไม่จำเป็นต้อง "แก้ไขและดำเนินการต่อ" การทำงานในระหว่างการพัฒนาและต้องการ IIS Express เพื่ออยู่หลังจากช่วงการแก้จุดบกพร่อง, คุณก็สามารถเปิดการเปิดใช้งานแก้ไขและดำเนินการต่อออกจากตัวเลือก

หากคุณต้องการใช้ "แก้ไขและดำเนินการต่อ" หรือคุณกำลังพัฒนาเว็บไซต์ Asp.net 5 (โครงการ ASP.NET 5 ไม่มีช่องทำเครื่องหมายแก้ไขและดำเนินการต่อในคุณสมบัติโครงการ) คุณต้องใช้คำสั่ง "Detech all"เพื่อหยุดการดีบัก

ดีบักเกอร์จะแยกออกจากกระบวนการ iis โดยไม่ต้องปิด

เห็นได้ชัดว่าคุณสมบัติ "แก้ไขและดำเนินการต่อ" จะไม่ทำงานจนกว่าคุณจะเริ่มแก้ไขข้อบกพร่องอีกครั้ง

ป้อนคำอธิบายรูปภาพที่นี่


รูปภาพมีค่าหนึ่งพันคำ: D
giammin

64

แทนที่จะกด(X) STOPปุ่มคุณสามารถใช้Detach allรายการเมนูในเมนูดีบั๊ก ข้อแตกต่างที่สำคัญคือปุ่มหยุดจะยุติกระบวนการใด ๆ ที่กำลังถูกดีบั๊กขณะที่ Detach All จะตัดการเชื่อมต่อดีบักเกอร์ออกจากกระบวนการ แต่จะไม่ยุติพวกเขา

ปกติกระบวนการทำงาน IIS ก็จะถูกยกเลิก แต่เนื่องจากใช้ในการทำงานเป็นบริการก็จะเริ่มต้นโดยอัตโนมัติขึ้นมาอีกครั้งและทำให้คุณสามารถใช้ต่อไปได้โดยไม่ต้องเริ่มต้นกระบวนการผ่านหรือ|> Debug|> Start without debugging

สกรีนช็อตสำหรับการอ้างอิง

การเพิ่มปุ่ม 'แก้ไขและดำเนินการต่อ' เพื่อแก้ไขข้อบกพร่องแถบเครื่องมือ


3
นี่ใกล้กับคำตอบที่แท้จริงจริง ๆ แล้วตัวเลือก 'แก้ไขและดำเนินการต่อ' เป็นคุณสมบัติ .. การแนบและแยกการติดตามการดีบักไปยังกระบวนการฟังเป็นแนวคิดการขีดเส้นใต้ของการสนทนาที่นี่และไม่ว่าการคลิกหยุดจะยุติกระบวนการฟังนั้นหรือ แยกจากมัน .. ซึ่งแน่นอนว่าคุณสามารถติดตั้งใหม่ได้เช่นกัน
Brett Caswell

@jcmcbeth มันใช้งานได้กับ IIS Express อย่างแน่นอน .. ฉันไม่เห็นว่ามันจะไม่ทำงาน ... กระบวนการ IIS Express เป็นเพียงกระบวนการแยกต่างหากของพวกเขา .. debugger VS ของคุณเริ่มต้นกระบวนการและเชื่อมต่อกับมัน .. แต่กระบวนการนั้นไม่ได้ขึ้นอยู่กับดีบักเกอร์ที่แนบมาของคุณเพื่อให้ทำงานได้นานกว่าแอปพลิเคชันหรือเว็บเซิร์ฟเวอร์ของคุณต้องการให้ผู้เยี่ยมชม / ผู้ใช้ / ตัวแทน / ลูกค้าทำงานใน proc
Brett Caswell

1
@jcmcbeth มันเป็นเรื่องแปลกที่จะพูดในเว็บไซต์ถามตอบเมื่อคุณพูดถึงการสนับสนุนคุณสมบัติและการตั้งค่า นี่ไม่ใช่การนำไปหรือทิ้งไว้ในฉากหลัง คุณกล่าวว่ามันไม่ได้ปรากฏในการทำงานกับ IIS ด่วน มันทำ
Brett Caswell

1
ช่องทำเครื่องหมาย "เปิดใช้งานการแก้ไขและดำเนินการต่อ" ไม่มีอยู่ใน VS 2015 RC สำหรับโครงการ ASP.NET 5 ดังนั้นจึงเป็นวิธีที่จะไปหากคุณต้องการใช้ IIS Express กับสิ่งเหล่านี้
Tomek

7
นี่คือคำตอบว่า VS 2015 อัปเดต 2 มีการเปลี่ยนแปลงพฤติกรรม IIS ด้วยการลบแก้ไขและดำเนินการต่อจากแท็บเว็บโครงการ
Robharrisaz

32

ดูเหมือนว่าตั้งแต่การเปิดตัว Visual Studio 2015 Update 2 ทางออกที่ยอมรับไม่ได้อีกต่อไป

วิธีแก้ปัญหาที่ง่ายที่สุดที่ฉันพบคือการเริ่มต้นโครงการโดยเลือก " เริ่มต้นโดยไม่มีการดีบั๊ก " จากเมนูดีบั๊ก


1
ดูเหมือนว่าคุณกำลังพูดถึง VS2015
ชาด Carisch

ประณามฉันเพิ่งพบปัญหานี้และโพสต์คำถามนี้ มีวิธีแก้ปัญหาที่รู้จักกันเพื่อแก้ปัญหานี้ - นอกเหนือจากการผูกทางลัดใหม่ของคุณเพื่อเริ่มโดยไม่ต้องแก้ไขจุดบกพร่องและแยกออกแทนที่จะหยุด?
nikib3ro

1
พวกเขากล่าวว่าพวกเขากำลังแก้ไขมันในการปรับปรุงต่อไปในเวลาเฉลี่ยเคล็ดลับอื่นที่คุณสามารถใช้คือการกดปุ่ม Ctrl + F5 เพื่อเริ่มต้นเว็บไซต์โดยไม่ต้องแก้จุดบกพร่อง: connect.microsoft.com/VisualStudio/feedback/details/2562576/...
mattmanser

4

นี่อาจเป็นหมวดหมู่ที่ดีที่สุดเป็นวิธีแก้ปัญหาอื่น

โดยทั่วไปฉันเริ่มโครงการเป็นครั้งแรกด้วยเมนูบริบท "ดูในเบราว์เซอร์" (หรือ CTRL-Shift-W)

ตั้งแต่นั้นมาทุกอย่างที่ต้องแก้จุดบกพร่องฉันมักจะแนบกับกระบวนการ iisexpress ที่มีอยู่ใหม่ ในขณะที่การเสวนาผ่านเมนูตามบริบทจะทำให้สิ่งนี้ไม่ใช่แบบเริ่มต้น แต่เกือบจะเร็วเท่ากับ F5 ด้วยการกดแป้นต่อไปนี้:

  • Shift-F6 เพื่อสร้างโครงการปัจจุบันหรือ Ctrl-Shift-B เพื่อสร้างโซลูชันทั้งหมด (จำเป็นเฉพาะเมื่อคุณทำการเปลี่ยนแปลง แต่ฉันคิดว่าฉันควรพูดถึงมันตั้งแต่ F5 ทำสิ่งนี้ไปแล้ว)
  • Ctrl-Alt-P เปิดไดอะล็อกแนบกับกระบวนการ

  • การพิมพ์ "iis" จะนำคุณเข้าสู่กระบวนการ iisexpress

  • กด Enter และคุณจะถูกแนบ

หากคุณมีมากกว่าหนึ่ง iisexpress ทำงานโดยทั่วไปคนสุดท้ายที่เริ่มต้นมักจะปรากฏที่ด้านบนของรายการ อีกทางเลือกหนึ่งคือการเลื่อนเลือกและแนบกับพวกเขาทั้งหมด

นี่เป็นข้อดีหลายประการของ IMO ก่อนอื่นก็ไม่ได้ยุติกระบวนการ ประการที่สองหน้าต่างเบราว์เซอร์จะไม่ปิดเมื่อคุณหยุดการดีบัก มันทำให้ฉันแตกเมื่อฉันเห็นนักพัฒนาทำซ้ำ 7 ขั้นตอนเพื่อสร้างข้อผิดพลาดเมื่อสิ่งที่เขาต้องทำคือกด F5 ในหน้าต่างเบราว์เซอร์ที่มีอยู่เพื่อทำการ repost เมื่อมีการเชื่อมต่อดีบัก สุดท้ายนี้ฉันต้องทำสิ่งนี้เมื่อติดกับ nunit ดังนั้นฉันจึงได้รับประสบการณ์ที่สอดคล้องกันมากขึ้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.