Tidak dapat memulai debugging di server web. Tidak dapat memulai debugging ASP.NET VS 2010, II7, Win 7 x64


92

Saya menjalankan Visual Studio 2010 (sebagai Admin), IIS 7 di Windows 7 x64. Saya dapat menjalankan situs web ASP.NET di IIS 7 tanpa debugging, tetapi ketika saya menekan F5 untuk men-debugnya, saya mendapatkan:

Tidak dapat memulai debugging di server web. Tidak dapat memulai debugging ASP.NET. Informasi selengkapnya mungkin tersedia dengan memulai proyek tanpa debugging.

Sayangnya tautan bantuan tidak banyak membantu saya dan mengarah ke banyak hal.

Saya memeriksa yang berikut ini:

  • Persyaratan keamanan - Saya tidak ingat harus melakukan sesuatu yang khusus sebelumnya. Proses pengerjaan di IIS7 adalah w3wp.exe. Dikatakan bahwa jika itu berjalan sebagai ASPNET atau LAYANAN JARINGAN saya harus memiliki hak Administrator untuk men-debugnya. Bagaimana cara mengetahui apakah saya perlu mengubah sesuatu di sini?

  • Halaman Properti situs web> Opsi Mulai> Debugger> ASP.NET dicentang. Gunakan server khusus diatur ke URL situs (yang berfungsi dengan baik tanpa debugging).

  • Debugging diaktifkan di web.config.

  • Aplikasi menggunakan ASP.NET 3.5 (Saya ingin pindah ke 4.0 pada akhirnya tetapi saya harus berurusan dengan migrasi).

  • Pool aplikasi: Classing .NET AppPool (juga mencoba DefaultAppPool).

Ada ide di mana saya bisa memeriksa selanjutnya?

Tentunya seharusnya tidak terlalu sulit untuk menginstal IIS, VS, membuat situs web, dan mulai mengujinya?

Terima kasih sebelumnya.


1
Hanya untuk memperjelas ketika Anda memulai Visual studio, Anda mengklik kanan padanya dan memilih opsi Run As Administrator?
Aaron Carlson

Sudahkah Anda memeriksa tautan ini? msdn.microsoft.com/en-us/library/dwesw3ee.aspx
Aaron Carlson

@ Aaron, Ya, saya sebenarnya telah menetapkan VS untuk selalu dijalankan sebagai Administrator.
Dan C

@Aaron, saya secara eksplisit membuka halaman itu dan anak-anaknya sebelum memposting di sini dan tidak ada yang menonjol yang perlu saya lakukan. Sistem saya memenuhi persyaratan dan debugging diaktifkan untuk situs tersebut. Saya tidak memiliki Windows Server 2003 jadi tidak ada konfigurasi IIS yang dilakukan di sana. Belum menyentuh setelan keamanan apa pun pada apa pun karena saya tidak tahu apakah perlu.
Dan C

Tidak yakin apakah ini membantu, tetapi saya mencoba untuk membuat tes baru Situs Web ASP.NET 3.5 di VS 2010, menambahkannya ke IIS 7 tanpa konfigurasi khusus dan dapat men-debug dengan baik. Sesuatu dengan aplikasi utama saya dengan bagaimana itu dikonfigurasi di VS, IIS, atau bahkan sistem file. Hanya tidak yakin harus mulai mencari dari mana.
Dan C

Jawaban:


239

Coba buka IIS dan periksa untuk memastikan App Pool yang Anda gunakan telah dimulai. Seringkali, Anda akan menghasilkan kesalahan yang mematikan kumpulan aplikasi. Anda hanya perlu mengklik kanan dan Mulai dan Anda sudah siap.


Terima kasih, semoga saya menemukan posting ini Jumat! Pool terhenti dan saya mengalami kesalahan pertama
Christopher Cabezudo Rodriguez

Dalam kasus saya, saya harus mengizinkan ASP.NET v4.0.30319 di Pembatasan ISAPI dan CGI
Adi

15
+1 Nama pengguna / kata sandi buruk yang digunakan untuk otentikasi App Pool.
P. Brian.Mackey

3
Dalam kasus saya, kolam sudah dimulai, tetapi setelah Menghentikan dan Memulai lagi, itu berhasil.
Serj Sagan

1
Terima kasih. Solusi ini bekerja untuk saya dengan sempurna. Saya harus memulai ulang kumpulan aplikasi sebagai tambahan.
Sunil

44

Ternyata pelakunya adalah modul IIS Url Rewrite . Saya telah menetapkan aturan yang mengalihkan panggilan ke Default.aspx (yang ditetapkan sebagai halaman awal situs web ) ke root situs sehingga saya dapat memiliki URL beranda kanonis. Namun, ternyata VS bermasalah dengan hal ini dan menjadi bingung. Masalah ini tidak terjadi saat saya menggunakan Helicon ISAPI_Rewrite sehingga tidak terpikir oleh saya untuk memeriksanya.

Saya akhirnya membuat situs web baru dari awal dan memindahkan proyek / file sedikit demi sedikit ke dalam solusi saya dan membangun kembali web.config saya sampai saya menemukan ini! Yah, setidaknya sekarang saya memiliki situs yang sedikit lebih bersih menggunakan .NET 4.0 (sejauh ini, semoga saya tidak akan menabrak dinding apa pun) - tapi sungguh merepotkan!


6
Ya, tetapi Anda harus memastikan pool aplikasi berjalan, juga portal Anda.
Junior Mayhé

Pada catatan itu, masalah saya ada di web.config di bawah: <applicationInitialization remapManagedRequestsTo = "/ App / splash.html" doAppInitAfterRestart = "true" lockAttributes = ""> <add initializationPage = "App / index.html" hostName = " CSI "lockItem =" true "/> </applicationInitialization>. Saya menggunakan itu untuk menampilkan layar splash saat aplikasi diinisialisasi.
Nick

6
Ini untukku. Aturan penulisan ulang untuk mengirim semua lalu lintas HTTP ke HTTPS menyebabkan kesalahan buruk ini. Saya tidak dapat menemukan cara untuk mempertahankan aturan tersebut untuk debugging.
Kat

Hanya ingin menambahkan itu bagi saya itu mirip tetapi penulisan ulang SSL yang kami maksudkan bahwa jalur awal kami adalah localhost / appname tetapi karena pengalihan mengirim Anda ke localhost / nama aplikasi itu menyebabkan VS menjadi kesalahan karena tidak dapat menangani pengalihan .. Kami membutuhkan waktu satu jam + untuk menemukan masalah ini seperti ketika menguji di IIS secara lokal semuanya bekerja dengan sempurna! ..
Liam Wheldon

Masalah yang sama di sini (modul IIS Url Rewrite). Saya menyelesaikannya dengan memindahkan aturan saya ke saya Web.Release.config. Lihat weblogs.asp.net/srkirkland/… dan stackoverflow.com/questions/11032868/… .
Swisher Sweet

42

Visual Studio, saat memulai, akan (karena alasan tertentu) mencoba mengakses URL:

/debugattach.aspx

Jika Anda memiliki aturan penulisan ulang yang mengalihkan (atau menangkap), katakanlah, .aspxfile, di tempat lain maka Anda akan mendapatkan kesalahan ini. Solusinya adalah dengan menambahkan bagian ini untuk awal Anda web.config's <system.webServer>/<rewrite>/<rules>bagian:

<rule name="Ignore Default.aspx" enabled="true" stopProcessing="true">
    <match url="^debugattach\.aspx" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
    <action type="None" />
</rule>

Ini akan memastikan untuk menangkap satu permintaan khusus ini, tidak melakukan apa - apa , dan, yang terpenting, menghentikan eksekusi sehingga tidak ada aturan lain yang akan dijalankan. Ini adalah solusi yang kuat, jadi jangan ragu untuk menyimpannya di file konfigurasi Anda untuk produksi.


1
sayangnya ini tidak bekerja untuk saya secara pribadi namun saya dapat memverifikasi itu pasti semacam masalah penulisan ulang karena saya mengomentari bagian penulisan ulang web.config dan saya dapat berjalan tanpa masalah.
Matt

Mungkin ingin mencoba solusi dari sini: stackoverflow.com/a/30813200/375303 . Bekerja seperti pesona bagi saya.
jerhewet

Visual Studio akan mencatat kesalahan yang berkaitan dengan DebugAttach.aspx di sini:% UserProfile% \ AppData \ Local \ Temp \ Visual Studio Web Debugger.log (Jika Anda tidak memiliki file itu - atau jika itu file lama - maka masalah Anda mungkin tidak terkait dengan DebugAttach.aspx.)
Brandon S

Dalam kasus saya, akar masalahnya benar, tetapi bukan resolusinya. Bagi saya, ini berhasil: <location path="debugattach.aspx"> <system.webServer> <validation validateIntegratedModeConfiguration="false" /> <httpErrors errorMode="DetailedLocalOnly" existingResponse="PassThrough"> <clear /> </httpErrors> </system.webServer> </location>
Tasos K.

bagi saya masalah adalah karena "/debugattach.aspx" tetapi solusi mengubah erroMode menjadi "DetailedLocalOnly" juga.
Nashe

30

Untuk kepentingan orang lain, dalam kasus saya, saya telah mengonfigurasi pool aplikasi untuk menggunakan kredensial windows saya untuk mengakses berbagi sumber daya jaringan. Sejak debugging solusi terakhir saya telah mengatur ulang kata sandi windows saya. Kata sandi yang diubah disimpan di pool aplikasi dan bada bing.


Terima kasih untuk ini, saya bahkan tidak menggunakan berbagi jaringan tetapi ini berfungsi dengan baik.
Marissa

21

Jika ApplicationPool Identity disetel ke akun khusus dan kata sandi komputer diubah, Anda harus memperbarui kata sandi Anda


Ya, punya masalah, mencoba beberapa jawaban dari sini tanpa hasil, jawaban Anda adalah yang sangat membantu saya!
Vadzim Savenok

19

Untuk skenario saya, itu adalah perubahan pada bagian httpErrors di web.config, mengaturnya seperti ini:

<httpErrors mode="Custom"> 

menyebabkan masalah "Tidak dapat memulai debugging di server web". Menyetelnya kembali ke nilai sebelumnya dari "DetailedLocalOnly" memperbaiki masalah. Menggali lebih dalam saya menemukan bahwa sebenarnya hanya pengaturan kesalahan 401 yang menyebabkan ini:

<httpErrors mode="Custom"> 
    <error statusCode="401" prefixLanguageFilePath="" path="/masterpages/500.html" responseMode="ExecuteURL" />
<httpErrors mode="Custom"> 

Mengomentari baris kesalahan 401 memperbaiki masalah juga, saya melakukannya karena saya kemudian dapat mempertahankan penanganan kesalahan khusus dan mulai dengan debugging.

Saya masih tidak tahu mengapa ini terjadi.


Penyebab yang sama bagi saya, menyaksikan 401 tanggapan di log saya ketika mencoba memulai debugging, dan menonaktifkan penanganan kesalahan default saya memecahkan masalah "situs vs tidak dapat men-debug" untuk saya. Saya tidak mengerti mengapa 401 terjadi bahkan pada halaman login saya ketika dan hanya ketika memulai debug dengan vs, sementara hanya akses anonim dan autentikasi formulir web. diaktifkan.
Frédéric

Ini adalah perbaikan untuk saya juga, hanya saja saya memiliki jalur kesalahan default yang ditetapkan alih-alih secara eksplisit menentukan satu untuk 401.
tuespetre

Inilah yang berhasil untuk saya (sementara saya baru saja menghapus seluruh bagian httperrors). Hal-hal yang saya coba sebelumnya yang tidak berhasil adalah memulai ulang kumpulan aplikasi dan menghapus aturan penulisan ulang URL.
Nicholas Westby

Inilah yang berhasil bagi saya. kemudian saya mengubah kesalahan khusus saya seperti yang ditulis @Pablo Romeo dalam jawaban ini: stackoverflow.com/a/13905859/4489664
Bondaryuk Vladimir

2
Mengubah erroMode menjadi "DetailedLocalOnly" juga memecahkan masalah saya. Debugger mencoba membuka "/DebugAttach.aspx" yang membuatnya masuk ke Halaman Kesalahan Kustom yang tidak dapat dijalankan pada waktu tertentu.
Nashe

13

Plase cek aplikasi pool. jika dihentikan. mulai ulang.


4
Ini sama dengan jawaban nomor 1 yang diajukan sebulan sebelumnya.
mac10688

Oke, tapi kenapa berhenti setiap saat?
Fernando Torres

Kumpulan aplikasi saya berjalan pada pengguna yang kata sandinya telah diubah.
Anderson

11

Memiliki masalah yang sama saat mencoba men-debug modul DNN (Dot Net Nuke). Ternyata Anda perlu memiliki kompilasi debug = "true":

<compilation debug="true" strict="false" targetFramework="4.0"> 

di web.config Anda. Secara default salah di DNN. Sumber asli di sini: http://www.dnnsoftware.com/forums/forumid/111/postid/189880/scope/posts


Terima kasih!! Saya telah merobek rambut saya sepanjang hari dan perbaikannya sangat sederhana. Jika saja VS dapat memberikan pesan kesalahan yang berarti!
colincameron

8

Saya memiliki masalah yang persis sama setelah menerapkan modul rewrite.

Jika saya menghapus entri rewrite dari file web.config saya, debugging berfungsi dengan sempurna.

Untuk menyiasati ini, saya hanya mengomentari tag penulisan ulang saat debugging, seperti ini ...

<rewrite>
    <rules>
        <rule name="LowerCaseRule_1" stopProcessing="true">
            <match url="[A-Z]" ignoreCase="false" />
            <action type="Redirect" url="{ToLower:{URL}}" />
        </rule>
        <rule name="RedirectDefault.aspx_1" stopProcessing="true">
            <match url="(.*)default.aspx" />
            <action type="Redirect" url="{R:1}" redirectType="Permanent" />
        </rule>
    </rules>
</rewrite>

Saya kemudian menghapus komentar setelah debugging.

Pasti ada bug di studio visual 2010.


1
Benar, ini adalah solusi, tetapi buruk karena sangat mudah untuk melupakan menghapus komentar seperti ini sebelum komit atau menerbitkan situs.
Jon Adams

1
Anda dapat memindahkan baris-baris ini di file konfigurasi web.config.release, jadi ketika Anda mempublikasikannya, itu hanya akan ada dalam versi yang diterbitkan. Itulah yang saya lakukan.
shalke

Mungkin hanya mengecualikan /debugattach.aspx saja. Lihat komentar Peter Monks
Daniel Fisher lennybacon

6

Saya mendapat kesalahan yang sama sejak pool Aplikasi dihentikan di IIS. Setelah memulai App Pool, masalah telah teratasi.


Memecahkan masalah saya juga! Saya menemukan bahwa DefaultAppPool saya telah berhenti. Terima kasih telah membagikan ini. Saya tidak mengerti mengapa itu berhenti.
Jobert Enamno

5

Inilah yang saya lakukan untuk menghapus kesalahan yang Anda catat. Temukan folder web untuk aplikasi dalam sistem file, pergi ke Properties => Keamanan klik tombol Advanced kemudian klik tab Owner , klik tombol Edit dan ubah pemilik (dengan izin yang benar) dari folder dan centang " Repalce pemilik subkontainer dan objek ". Klik " Terapkan " dan kemudian saya berbisnis (dapat melakukan debug).

Semoga ini berhasil untuk orang lain.


2
Ubah pemilik menjadi siapa?
dumbledad

5

Akhirnya memperbaiki ini untuk solusi tunggal saya yang mengalami ini. Dua dari proyek dalam solusi ditetapkan sebagai situs di IIS. Saya masuk dan mengaktifkan Peniruan Identitas ASP.Net di bawah Otentikasi untuk kedua proyek ... dan VIOLA! AKHIRNYA, tidak ada lagi kesalahan yang mengganggu ini!


3

Saya mendapatkan pesan kesalahan yang sama di VS 2012, tetapi tidak berjalan sebagai Administrator. Ketika saya menjalankan aplikasi sebagai administrator, saya mendapatkan pesan yang berbeda dan sedikit lebih membantu (yang dapat saya pahami). HTH


3

Jika App Pool mengalami masalah saat memulai ulang atau tidak ingin memulai ulang, verifikasi apakah windows membuat pembaruan terkini pada ASP.NET v4.0 atau App Pool lainnya. Itulah yang terjadi dalam kasus saya. Saya cukup me-restart komputer saya, kemudian memulai kembali ASP.NET v4.0 App Pool dan semuanya berfungsi kembali!


2

Dan,

Selain saran Aaron, coba yang berikut ini

  • Periksa apakah otentikasi windows terintegrasi dipilih di situs web IIS Anda
  • Bisakah Anda men-debug menggunakan Cassini daripada IIS?

Saya mengikuti langkah-langkah di sini untuk mengaktifkan otentikasi windows terintegrasi: msdn.microsoft.com/en-us/library/x8a5axew.aspx namun saya masih memiliki kesalahan yang sama (iis manager menunjukkan peringatan bahwa saya tidak dapat menggunakan challnge dan otentikasi berbasis login - situs saya menggunakan Autentikasi Formulir). Saya dapat men-debug situs menggunakan server web yang dibangun ke dalam VS 2010, tetapi fitur tersebut hilang.
Dan C

Apakah Anda mencoba membuat situs web baru di IIS dan menerapkan kode Anda di sana? Karena penasaran, fitur apa yang akan Anda lewatkan jika Anda melakukan debug di Cassini? Sepengetahuan saya, Cassini mendukung otentikasi formulir.
Keefu

Apa yang Anda maksud dengan "membuat situs web baru di IIS"? Ini adalah komputer baru dengan OS baru, VS2010, IIS diinstal. Saya membuat Aplikasi baru di IIS dan mengarahkannya ke folder situs web yang sebenarnya (diambil dari cadangan). Penulisan ulang URL tampaknya tidak berfungsi sepenuhnya di Cassini. Kami juga menggunakan modul khusus untuk secara otomatis beralih antara http dan https ( codeproject.com/KB/web-security/WebPageSecurity_v2.aspx ).
Dan C

Cassini tidak mendukung Modul Url Rewrite 2
citronas

2

Memiliki masalah yang sama dengan Windows 10 saat mengaktifkan semua fitur Windows IIS. Beralih ke Windows 8.1 dan mendapat masalah lagi. Akarnya ada di nama situs web " http: //MySite.local " (tidak terkait dengan versi OS).

Dan solusinya sederhana

  • Edit file host dalam %SystemRoot%\System32\drivers\etc\

  • Tambahkan baris dengan pengikatan ip: 127.0.0.1 MySite.local


Ini adalah permata bagi saya, benar-benar lupa tentang menyiapkan file host saya dan bertanya-tanya mengapa apis saya tidak berfungsi ketika saya beralih ke iis lokal (untuk https). VS bekerja dengan hanya satu situs yang berjalan di dalamnya, tetapi setelah saya menambahkan yang kedua, saya tidak dapat lagi men-debug, ini menyelesaikannya.
CDerrig

1

Saya mendapat kesalahan ini muncul hari ini karena cacat pada kode yang dikirim kembali dalam jumlah besar yang menyebabkan IIS dibanjiri permintaan. Ini pada dasarnya mengunci IIS dan jadi ketika saya mencoba men-debug, itu 'habis waktunya' mencoba memulai debugger. Saya hanya memulai ulang IIS, yang memakan waktu beberapa menit, dan itu menyelesaikan masalah.

Saya yakin berharap kesalahan ini kurang umum, sepertinya ada beberapa cara berbeda untuk memproduksinya.


1

Saya memiliki masalah yang sama di Visual Studio 2012 dan 2013 di Windows 8.1. Bagi saya, perbaikannya adalah menambahkan Otentikasi Windows ke IIS menggunakan 'Mengaktifkan atau menonaktifkan fitur Windows'

Aktifkan atau nonaktifkan fitur Windows


1

Pastikan Application Pool situs Anda menggunakan versi kerangka kerja yang benar . Saya mendapat pesan kesalahan "Tidak dapat memulai debugging" di situs ASP.Net 2005. Itu salah menggunakan DefaultAppPool pada Windows 7 (yang saya yakin menggunakan .Net Framework 4). Saya membuat App Pool baru berdasarkan .Net Framework 2 dan menetapkannya ke situs web bermasalah. Setelah itu debugging berfungsi dengan baik.


1

Periksa apakah situs web Anda di IIS tidak berhenti.

Saya memperbaikinya membuat situs web saya berjalan. : D


1

Saya mengalami masalah ini dan akhirnya menyadari bahwa saya ASP.net tidak terdaftar dengan benar di IIS. Ini dapat terjadi ketika server IIS diinstal sebelum Visual Studio. Untuk memperbaiki masalah ini, gunakan perintah aspnet_regiis -i Informasi lebih lanjut dapat ditemukan di tautan


1

memiliki masalah yang sama. Jika Anda memiliki sertifikat SSL yang diinstal di IIS dan jika Anda mencoba men-debugnya dari Visual Studio maka Anda perlu menyetel aplikasi Anda di IIS untuk mengabaikan sertifikat.


1

Saya memiliki masalah yang sama dan menemukan bahwa itu disebabkan karena saya memiliki karakter yang salah ketik di Web.configtag akhir saya. Saya Web.configtampak seperti hak ini di akhir: </section>h. Huruf "h" adalah karakter tambahan setelah tag penutup.


0

hapus sting seperti ini: targetFramework = "4.0" di web.config atau ubah AppPool ke versi framework yang sesuai.


0

Menghapus instalasi IIS UrlScan Extension memecahkan masalah saya.


0

Saya telah menghadapi masalah yang sama tetapi itu di server pengembangan web Visual studios sendiri, bukan IIS. Cara mengatasinya adalah dengan menghapus centang opsi di tab Web di bawah properti proyek, Terapkan pengaturan server ke semua pengguna (simpan dalam file proyek.). Harapan itu akan menghemat waktu berharga seseorang.


0

Saya memiliki masalah yang sama. Semua jawaban di atas tidak berhasil untuk saya. Solusinya adalah dengan menghapus folder bin dan obj secara manual.


0

Saya menemukan masalah ini juga, tetapi yang paling mirip dengan apa yang dijelaskan @Kirk dan penulisan ulang URL.

Dalam kasus saya, seseorang telah memeriksa perubahan ini ke file web.config untuk proyek MVC:

<system.webServer>
    <security>
        <requestFiltering>
            <fileExtensions>
                <add fileExtension=".aspx" allowed="false" />
            </fileExtensions>
        </requestFiltering>
    </security>
</system.webServer>

Karena ekstensi file .aspx tidak diizinkan di server web, /debugattach.aspxURL ditolak, mencegah debugger berjalan. Setelah saya menghapus konfigurasi ini, itu berfungsi lagi.


0

Saya memiliki masalah yang sama ketika saya membuat aplikasi di Visual Studio, dan kemudian di properti dibuat direktori virtual untuk digunakan dengan IIS lokal. Jika seseorang mengalami kesalahan ini itu karena VS membuat aplikasi di bawah AppPool yang salah, yaitu di bawah AppPool yang tidak sesuai dengan kebutuhan Anda.
Jika demikian, buka Manajer IIS, pilih Aplikasi, Buka Pengaturan dasar dan ubah AppPool untuk Aplikasi dan Anda siap melakukannya.


0

Saya mendapatkan kesalahan yang sama baru-baru ini dan dalam kasus saya ternyata ada jenis MIME duplikat. Saya baru saja menambahkan dua yang awalnya tidak muncul dalam daftar. IIS membiarkan saya menambahkannya dan hanya ketika saya memutuskan untuk memeriksa jenis MIME untuk situs itu lagi sebagai bagian dari proses diagnostik saya, saya mendapat kesalahan di IIS juga. Ini mereferensikan duplikat di web.config. Setelah saya kembali ke file web.config, saya melihat bahwa bagian baru bernama telah ditambahkan, yang menyertakan dua jenis MIME yang baru ditambahkan. Menghapus bagian itu dan hidup baik-baik saja! Berharap ini dapat membantu orang lain yang belum berhasil memperbaiki masalah dengan saran lainnya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.