Terjadi kesalahan saat mencoba menentukan id proses dari proses DNX yang menghosting aplikasi Anda

101

Saya mendapatkan pesan kesalahan ini ketika saya mencoba untuk memulai aplikasi.

Terjadi kesalahan saat mencoba menentukan id proses dari proses DNX yang menghosting aplikasi Anda

Apakah ada cara untuk mengatasi masalah tersebut?

Domysee
sumber

Jawaban:

151

Bagi saya masalahnya diselesaikan dengan menutup Visual Studio, menghapus

project.lock.json

dan memulai Visual Studio lagi.

Edit : Saya menggunakan RC1.

Frode Lillerud
sumber
2
Memecahkan masalah saya dalam proyek RC1
Nadav Hury
@NadavHury Sama di sini :)
ManyRootsofAllEvil
1
Memecahkan masalah yang saya miliki dengan contoh aplikasi RC1 yang diunduh dari PluralSight, sangat kami hargai
tomRedox
5
ini tidak berfungsi lagi. np microsoft. kami akan mencari tahu. lagi dan lagi dan ... LAGI
1
di mana project.lock.json?
CodyBugstein
34

Microsoft mengubah model hosting seperti yang dijelaskan dalam catatan rilis .

Dalam project.jsonmenggantikan ketergantungan

"Microsoft.AspNet.Server.IIS": "1.0.0-beta7"

dengan

"Microsoft.AspNet.Server.Kestrel": "1.0.0-beta8"


Di web.configdalam handlersbagian menghapus setiap entri kecuali

<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />

Lengkapnya web.configakan terlihat seperti ini:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
    </handlers>
    <httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
  </system.webServer>
</configuration>

RC1: Saat menggunakan RC1, saya mengalami error setelah memindahkan folder solusi. Setelah menghapus folder bindan objsemuanya berfungsi kembali.
Seperti dicatat oleh user764754, cukup dengan me-restart Visual Studio juga dapat membantu.

Domysee
sumber
Dalam model hosting baru, Anda tidak menggunakan web.config sama sekali dan dapat menghapusnya seluruhnya. HttpPlatformHandler dan Startup.cs menggantikan web.config, karena Anda melewati IIS sampai batas tertentu.
cygnim
2
Saya menggunakan template terbaru setelah menginstal 1.0.0-beta8 terlebih dahulu, kemudian membuat proyek ASP.NET baru di VS 2015. Semua entri sudah benar, saya masih mendapatkan error yang sama seperti Domysee. Bisakah seseorang menjelaskan apa artinya "% DNX_PATH%" dan "% DNX_ARGS%"?
okieh
1
Saya harus menjelaskan, Anda tidak memerlukan web.config dalam proyek Anda. File web.config minimal dibuat selama kompilasi yang pada dasarnya menambahkan HttpPlatformHandler ke pipeline dan mengarahkan lalu lintas dari IIS ke server Kestrel. Jadi Anda benar, ada file web.config, tetapi tidak perlu dalam basis kode proyek Anda.
cygnim
3
Hanya me-restart VS melakukannya untuk saya dengan RC-1 tidak perlu menghapus.
pengguna764754
2
Saya memiliki masalah yang sama dengan RC1, solusi bagi saya adalah menghapus web.config (di wwwroot)
rad
30

Untuk orang lain yang mengalami masalah ini, dalam kasus di mana solusi lain tidak berfungsi - Saya menemukan jawabannya di utas ini: Memaksa menggunakan SSL: Terjadi kesalahan saat mencoba menentukan id proses dari proses DNX yang menghosting aplikasi Anda

Jika proyek Anda menggunakan atau memberlakukan SSL, jalankan tanpa debugging (CTRL + F5) terlebih dahulu, ini akan meminta Anda untuk menghasilkan sertifikat SSL lokal, dan setelah itu debugging akan berfungsi dan kesalahan akan hilang.

Radosław Chybicki
sumber
Ini memperbaikinya untuk saya. Saya telah memigrasi proyek saya ke komputer baru yang sertifikatnya belum terpasang. Terima kasih.
Pace
Bagus, itu dia! Saya akan mencatat ini di halaman "Mengaktifkan otentikasi menggunakan Facebook ...", karena instruksi mereka termasuk memaksa SSL.
N8allan
Saya tidak bisa membuatnya bekerja dengan melakukan CTRL + F5. F5 bekerja setelah menjalankan ini untuk mempercayai sertifikat iis express saya. Saya tidak memiliki peringatan, tetapi ini memperbaikinya untuk saya.
Josh Tutup
11

Untuk apa nilainya, ini adalah pesan kesalahan umum yang dapat berfungsi sebagai pengalih perhatian untuk sejumlah masalah di mana httpPlatformHandler tidak dapat meluncurkan executable yang diberikan (dnx dalam kasus ini).

Dalam kasus saya, saya menerima kesalahan ini sebagai akibat langsung dari kesalahpahaman file launchSettings.json. Saya mencoba mengaktifkan titik akhir https untuk aplikasi saya dan secara keliru menduplikasi sslport di applicationUrl saya. Seperti yang saya pahami, applicationUrl haruslah nama host / port http aplikasi dan dengan mengisi sslPort, ia hanya mengonfigurasi lingkungan IIS Express untuk mendengarkan https pada nama host yang diberikan dalam applicationUrl pada port yang disediakan di sslPort.

Sebagai contoh:

  "iisSettings": {
     "windowsAuthentication": false,
     "anonymousAuthentication": true,
     "iisExpress": {
       "applicationUrl": "http://localhost:44000",
       "sslPort": 44300
      }
  }

Menyediakan dua titik akhir berikut di localhost.

  • Http melalui port 44400
  • Https melalui port 44300

Jika Anda memiliki port yang sama di pengaturan applicationUrl dan sslPort, Anda akan menerima kesalahan yang terkait dengan utas ini.

Ini berlaku untuk saya di RC1

Jonathan Mast
sumber
Mengapa sslPort harus berbeda dari applicationUrl? Dulu bekerja untuk saya sampai RTM ...
Boris Lipschitz
Saya mengalami kesalahan: tidak dapat terhubung ke server web 'IIS Express', dan setelah menghapus file "\ .vs \ config \ applicationhost.config" saya mendapat kesalahan "terjadi kesalahan saat mencoba ...". Dalam properti proyek> debug Saya menghapus centang SSL, menjalankan debugger (berfungsi), mencentang SSL lagi dan menyalin URL ke "URL Aplikasi", debugging dalam mode SSL berfungsi lagi. Kesalahan muncul setelah pembaruan windows, meskipun tidak yakin apakah itu penyebabnya. IisSettings saya sekarang menjadi "iisExpress": {"applicationUrl": " localhost: 44369 ", "sslPort": 44369} .. ini berfungsi jika nomor port tidak sama
JimiSweden
6

Dimungkinkan untuk meningkatkan, saya menemukan saya harus melihat-lihat templat baru yang diperbarui di sini .

Perbarui web.config Anda di wwwroot untuk memasukkan:

<httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>

Anda juga perlu mengubah cara proyek men - debug menggunakan Kestrel dengan memodifikasi project.json Anda:

"commands": {
  "web": "Microsoft.AspNet.Server.Kestrel"
},
"dependencies": {
  "Microsoft.AspNet.IISPlatformHandler": "1.0.0-beta8",
  "Microsoft.AspNet.Server.Kestrel": "1.0.0-beta8",
}

dan memodifikasi hosting.ini Anda

server=Microsoft.AspNet.Server.Kestrel

dan menambahkan ini ke metode Konfigurasi di startup.cs

// Add the platform handler to the request pipeline.
app.UseIISPlatformHandler(); 

menambahkan referensi ini akan memungkinkan Anda menjalankan proyek.

Ben M
sumber
5

Saya mengalami masalah ini karena konfigurasi proyek mencoba meluncurkan https: // localhost alih-alih http. Klik kanan pada proyek web, di bawah "Debug" dan sesuaikan "URL Aplikasi" menjadi http, bukan https. masukkan deskripsi gambar di sini

Cara lain untuk menyiasati ini adalah mengalihkan peluncur dari "IIS Express" ke "Web"

Mike S.
sumber
3

Di Visual Studio:

Saat mengikuti tutorial ini saya menerima kesalahan serupa.

Pertama, saya menerima kesalahan: "Terjadi kesalahan saat mencoba menentukan id proses dotnet.exe ..." Saya mengambil langkah-langkah berikut.

  1. Saya memulai aplikasi saya tanpa debugging CTRL + F5.
  2. Saya kemudian diberikan opsi untuk menerima sertifikat yang ditandatangani sendiri untuk localhost.
  3. Saya mengikuti petunjuknya dan kemudian saya dapat mengunjungi aplikasi saya menggunakan AppUrl yang saya salin setelah mengaktifkan SSL dalam pengaturan debug proyek.

Saat mencoba beberapa hal untuk mengatasi kesalahan itu, saya juga menemukan kesalahan ini. "Terjadi kesalahan saat mencoba menentukan id proses dari proses DNX yang menghosting aplikasi Anda"

Yang disebabkan oleh instance aplikasi lain yang sedang berjalan.

Saya harap jawaban ini membantu seseorang.

Eric
sumber
Tunggu, jadi jawabannya "disebabkan oleh aplikasi lain yang sedang berjalan"? Harus membuat ini lebih jelas sekarang.
Berdarah
2

Dalam kasus saya dalam proyek asp net core 1.1, .net framework 4.5.2, kesalahan tidak merujuk ke dnx karena itu tidak lebih. Sebaliknya itu merujuk pada nama proyek exe. Versi lain dari kesalahan yang merujuk pada tidak dapat menyambung ke iis express.

Masalahnya adalah pengenalan aturan penulisan ulang nama host kanonik yang mencoba memaksa semua koneksi untuk memiliki nama host yang dimulai dengan www. mis. mengalihkan gty.org ke www.gty.org untuk menyesuaikan dengan sertifikat ssl kami. Ini bagus dalam produksi tetapi Anda tidak dapat memaksa https: // localhost: 44347 / untuk memulai dengan www dan berharap iis express dapat menanganinya.

<rule name="CanonicalHostNameAddwww" enabled="true" stopProcessing="true">
      <match url="(.*)" ignoreCase="true" />
      <conditions logicalGrouping="MatchAll">        
        <add input="{HTTP_HOST}" negate="true" pattern="^www\." />
      </conditions>
      <action type="Redirect" url="http://www.{HTTP_HOST}{HTTP_URL}"  appendQueryString="false" redirectType="Permanent" />
</rule>

Solusinya adalah mengomentari aturan saat berjalan di studio visual atau menambahkan kondisi:

<add input="{HTTP_HOST}" negate="true" pattern="^localhost" />
W Pearson
sumber
2

Dengan asumsi Anda menjalankan IIS Express dengan SSL Diaktifkan tergantung pada instalasi Anda, Anda harus meletakkan IIS Express Development Certificate (Dikeluarkan untuk "localhost" / Diterbitkan Oleh "localhost") baik di [Komputer Lokal \ Personal \ Certificates] atau [Komputer Lokal \ Sertifikasi Root Terpercaya \ Sertifikat]. Salah satunya harus bekerja. (Menggunakan Windows 10 + VS2015). HTH

Nathan Noble
sumber
Menambahkan IIS Express Development Certificate di Komputer Lokal \ Trusted Root Certification \ Certificates melakukan pekerjaan untuk saya. Terima kasih! (Untuk orang lain, dalam kasus saya, saya sudah memiliki sertifikat di Komputer Lokal \ Pribadi \ Sertifikat)
David Aleu
1

Periksa file web.config untuk entri yang tidak valid. Misalnya, memiliki tag "entityFramework" di sana menyebabkan masalah ini bagi saya.

Victor Stagurov
sumber
1

Saya mengalami masalah ini ketika saya mengubah pengaturan dan telah menonaktifkan " Aktifkan Otentikasi Anonim " di Proyek> Properti> Debug. Pastikan itu diaktifkan. Tutup dan luncurkan kembali proyek, lalu coba lagi. Semoga ini membantu.

wolfQueen
sumber
Saya memiliki masalah yang sama, tetapi daripada hanya harus mengaktifkan anonim, saya harus mengaktifkan otentikasi anonim atau windows. Jika keduanya salah, saya mendapat kesalahan.
birken25
1

Saya menggunakan RC1 dan EF First Code Approach. Ide bagus untuk memulai investigasi adalah menjalankan proyek dengan opsi: "Mulai proyek tanpa debbuging" (Ctrl + F5). Kemudian saya mendapatkan kesalahan yang lebih berarti bagi saya: "Bagian konfigurasi 'entityFramework' tidak dapat dibaca karena deklarasi bagian tidak ada." Itu tidak berhasil untuk saya karena file web.config.

Jaryn
sumber
1
  1. Perbarui dnvm
  2. Ubah versi global.json sdk sebagai dnvm default
  3. Tidak perlu menyentuh project.json atau project.lock.json
Shuang Gao
sumber
0

Saat memutakhirkan dari beta7 -> beta8 saya mengalami masalah ini dan saran yang diberikan oleh Ben M dan Domysee berhasil untuk saya. Namun, salah satu kolega saya masih mengalami kendala dalam menjalankan proyek yang kami targetkan dnxcore50saja. Jika Anda yakin telah menjalankan perintah berikut:

dnvm install 1.0.0-beta8 -r coreclr
dnvm install 1.0.0-beta8 -r coreclr -arch x86

Itu adalah perintah kedua khususnya yang memperbaikinya di mesinnya. Anda juga dapat memeriksa ulang folder ini memiliki dnx.exedi dalamnya:

%userprofile%\.dnx\runtimes\dnx-coreclr-win-x86.1.0.0-beta8\bin
Barrie
sumber
0

Saya baru saja menemukan satu masalah lagi yang menyebabkan ini!

web.configdi root proyek memiliki beberapa aturan penulisan ulang URL IIS yang cerdik untuk menerapkan HTTPS. Menghapus aturan itu memecahkan masalah.

Ignas
sumber
0

Ada begitu banyak hal yang dapat menyebabkan kesalahan ini. Berikut beberapa yang berhasil untuk saya:

  1. Hapus saja web.configdi wwwrootfolder Anda . Ini akan dibuat ulang dengan benar saat kompilasi.
  2. Jika Anda mencoba menggunakan SSLdan dalam IIS Expressdan memindahkan Anda SSL Certke Trusted Root Certification Authoritiesfolder tidak berhasil. Di Debugtab Propertiesproyek yang Anda coba jalankan. Coba hapus Enable SSLcentang pada kotak dan kemudian klik lagi untuk mengaktifkannya dan mendapatkan port yang berbeda. Anda mungkin harus melakukannya beberapa kali.
Serj Sagan
sumber
0

Solusi potensial lainnya
Bagi siapa pun yang bermain dengan pengaturan SSL, saya menemukan hanya mengubah port SSL di launchSettings.jsonfile ke port terdekat lainnya telah menyelesaikan masalah.

FYI, saya tidak dapat menemukan apa pun di mesin yang menggunakan port asli, saya juga tidak mendapatkan kesalahan port dalam penggunaan.

Ben Cull
sumber