Uygulamanızı barındıran DNX işleminin işlem kimliğini belirlemeye çalışırken bir hata oluştu


101

Uygulamayı başlatmaya çalışırken bu hata mesajını alıyorum.

Uygulamanızı barındıran DNX işleminin işlem kimliğini belirlemeye çalışırken bir hata oluştu

Sorunu çözmenin bir yolu var mı?

Yanıtlar:


151

Benim için sorun, Visual Studio'yu kapatarak, silerek çözüldü

project.lock.json

ve Visual Studio'yu yeniden başlatmak.

Düzenleme : RC1 kullanıyordum.


2
RC1 projesindeki
sorunumu çözdüm

@NadavHury Aynı burada :)
ManyRootsofAllEvil

1
PluralSight'tan indirilen örnek RC1 uygulamasıyla karşılaştığım problemi çözdüm, çok takdir ediyorum
tomRedox

5
bu artık çalışmıyor. np microsoft. anlayacağız. tekrar ve tekrar ve ... TEKRAR

1
nerede project.lock.json?
CodyBugstein

34

Microsoft, barındırma modelini sürüm notlarında açıklandığı gibi değiştirdi .

In project.jsonbağımlılığını değiştirmek

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

ile

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


In web.configiçinde handlersbölüm hariç her girişi kaldırmak

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

Tam web.configşu şekilde görünecek:

<?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: RC1'i kullanırken çözüm klasörünü taşıdıktan sonra hata aldım. binVe objklasörlerini sildikten sonra her şey yeniden çalıştı.
User764754'ün belirttiği gibi, Visual Studio'yu yeniden başlatmak da yardımcı olabilir.


Yeni barındırma modelinde, web.config'i hiç kullanmazsınız ve tamamen kaldırabilirsiniz. HttpPlatformHandler ve Startup.cs, IIS'yi belirli bir ölçüde atladığınız için web.config'in yerini alır.
cygnim

2
İlk olarak 1.0.0-beta8'i yükledikten sonra en yeni şablonları kullanıyorum, ardından VS 2015'te yeni bir ASP.NET projesi oluşturuyorum. Tüm girişler doğru, yine de Domysee ile aynı hatayı alıyorum. Lütfen birisi "% DNX_PATH%" ve "% DNX_ARGS%" ne anlama geldiğini açıklayabilir mi?
okieh

1
Açıklığa kavuşturmalıyım, projenizde web.config'e ihtiyacınız yok. Derleme sırasında temelde HttpPlatformHandler'ı ardışık düzene ekleyen ve trafiği IIS'den Kestrel sunucusuna yönlendiren minimal bir web.config dosyası oluşturulur. Yani haklısınız, bir web.config dosyası var, ancak proje kod tabanınızda gerekli değil.
cygnim

3
Sadece VS'yi yeniden başlatmak benim için RC-1 ile silmeye gerek kalmadı.
user764754

2
RC1 ile aynı sorunu yaşadım, benim için çözüm web.config'i (wwwroot'ta) silmekti
rad

30

Bu sorunu yaşayan diğer kişiler için, diğer çözümlerin işe yaramadığı durumlarda - cevabı şu başlıkta buldum: SSL kullanmaya zorlama: Uygulamanızı barındıran DNX işleminin işlem kimliğini belirlemeye çalışırken bir hata oluştu

Projeniz SSL kullanıyor veya zorlarsa, önce hata ayıklama yapmadan çalıştırır (CTRL + F5), sizden yerel bir SSL sertifikası oluşturmanızı isteyecek ve bundan sonra hata ayıklama çalışacak ve hata ortadan kalkacaktır.


Bu benim için düzeltti. Projemi, sertifika yüklenmemiş yeni bir bilgisayara taşımıştım. Teşekkürler.
Pace

Güzel, buydu! Talimatları SSL'yi zorlamayı içerdiğinden, bunu "Facebook kullanarak kimlik doğrulaması etkinleştiriliyor ..." sayfasında belirteceğim.
N8allan

CTRL + F5 yaparak çalışmasını sağlayamadım. F5, iis ekspres sertifikalarıma güvenmek için bunu çalıştırdıktan sonra çalıştı . Hiçbir uyarı almadım ama bu benim için sorunu çözdü.
Josh Close

11

Ne 's değerinde için, bu bir genel hata iletisi httpPlatformHandler (bu durumda dnx) verilen yürütülebilir başlatamazlar sorunlardan herhangi sayıda kırmızı ringa olarak hizmet verebilir.

Benim durumumda bu hatayı, launchSettings.json dosyasını yanlış anlamanın bir sonucu olarak aldım. Uygulamam için https uç noktasını etkinleştirmeye çalışıyordum ve yanlışlıkla applicationUrl'de sslport'u kopyaladım. Anladığım kadarıyla applicationUrl, uygulamanın http ana bilgisayar adı / bağlantı noktası olmalı ve sslPort'u doldurarak, IIS Express ortamını sslPort'ta sağlanan bağlantı noktasında applicationUrl'de verilen ana bilgisayar adında https dinleyecek şekilde yapılandırıyor.

Örneğin:

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

Localhost üzerinde aşağıdaki iki uç noktayı sağlar.

  • 44400 bağlantı noktası üzerinden HTTP
  • 44300 bağlantı noktası üzerinden Https

ApplicationUrl ve sslPort ayarlarında aynı bağlantı noktasına sahip olsaydınız, bu iş parçacığı ile ilişkili hatayı alırsınız.

Bu benim için RC1'de geçerli


Neden sslPort, applicationUrl'den farklı olmalıdır?
RTM'ye

Şu hatayı yaşadım: 'IIS Express' web sunucusuna bağlanılamıyor ve "\ .vs \ config \ applicationhost.config dosyasını sildikten sonra" hatası alıyorum "denenirken bir hata oluştu ...". Proje özellikleri> hata ayıklamada SSL'yi kaldırdım, hata ayıklayıcıyı çalıştırdım (çalışıyor), SSL'yi tekrar işaretledim ve URL'yi "Uygulama URL'si" ne kopyaladım, SSL modunda hata ayıklama tekrar çalışıyor. Hata, bir Windows güncellemesinden sonra ortaya çıktı, ancak sorunun nedeni olup olmadığından emin değil. İisSettings'im artık "iisExpress": {"applicationUrl": " localhost: 44369 ", "sslPort": 44369}. Bağlantı noktası numaraları aynı değilse çalışır
JimiSweden

6

Yükseltmek mümkün, burada yeni güncellenmiş şablonlara bakmam gerektiğini fark ettim .

Wwwroot'taki web.config dosyanızı şunları içerecek şekilde güncelleyin:

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

Ayrıca project.json dosyanızı değiştirerek Kestrel kullanarak proje hata ayıklama yöntemini değiştirmeniz gerekecektir :

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

ve hosting.ini'nizi değiştirme

server=Microsoft.AspNet.Server.Kestrel

ve bunu startup.cs içindeki Configure yöntemine eklemek

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

bu referansların eklenmesi projeyi çalıştırmanıza izin vermelidir.


5

Http yerine https: // localhost'u başlatmaya çalışan proje yapılandırması nedeniyle bu soruna çarptım. "Hata Ayıkla" altında web projesini sağ tıklayın ve "Uygulama URL'si" ni https yerine http olacak şekilde ayarlayın. görüntü açıklamasını buraya girin

Bunu aşmanın bir başka yolu da başlatıcıyı "IIS Express" ten "Web" e geçirmekti


3

Visual Studio'da:

Bu öğreticiyi izlerken benzer bir hata aldım.

Önce şu hatayı aldım: "dotnet.exe işlem kimliğini belirlemeye çalışırken bir hata oluştu ..." Aşağıdaki adımları uyguladım.

  1. Uygulamama CTRL + F5 hata ayıklamadan başladım.
  2. Daha sonra localhost için kendinden imzalı bir sertifikayı kabul etme seçeneği sunuldu.
  3. Komut istemlerini takip ettim ve ardından proje hata ayıklama ayarlarında SSL'yi etkinleştirdikten sonra kopyaladığım AppUrl'yi kullanarak uygulamamı ziyaret edebildim.

Bu hatayı çözmek için birkaç şey denerken ben de bu hatayla karşılaştım. "Uygulamanızı barındıran DNX işleminin işlem kimliğini belirlemeye çalışırken bir hata oluştu"

Bunun nedeni, uygulamanın başka bir örneğinin çalışıyor olmasıdır.

Umarım bu cevap birine yardımcı olur.


Bekle, yanıt "uygulamanın başka bir örneğinin çalışmasından kaynaklanıyor" mu? Bunu hemen daha açık hale getirmeli.
Bloodied

2

Benim durumumda bir asp net çekirdek 1.1, .net çerçevesi 4.5.2 projesinde, hata artık dnx'e atıfta bulunmadı. Bunun yerine proje adı exe olarak adlandırıldı. Hatanın başka bir versiyonu, sadece iis express'e bağlanamamaktan bahsediyordu.

Sorun, tüm bağlantıları www ile başlayan bir ana bilgisayar adına sahip olmaya zorlayan kanonik bir ana bilgisayar adı yeniden yazma kuralının getirilmesiydi . örneğin, SSL sertifikamıza uyması için gty.org'u www.gty.org'a yönlendirmek. Bu üretimde iyidir, ancak https: // localhost: 44347 / ' yi www ile başlamaya zorlayamaz ve iis express' in bununla başa çıkmasını bekleyemezsiniz.

<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>

Çözüm, görsel stüdyoda çalışırken kuralı yorumlamak veya bir koşul eklemekti:

<add input="{HTTP_HOST}" negate="true" pattern="^localhost" />

2

IIS Express'i SSL Etkin olarak çalıştırdığınızı varsayarsak, kurulumunuza bağlı olarak IIS Express Geliştirme Sertifikanızı (Verilen "localhost" / Verilen "localhost") [Yerel Bilgisayar \ Kişisel \ Sertifikalar] veya [Yerel Bilgisayar \ Güvenilir Kök Sertifikasyon \ Sertifikalar]. Bunlardan biri çalışmalı. (Windows 10 + VS2015 kullanarak). HTH


IIS Express Geliştirme Sertifikasını Yerel Bilgisayar \ Güvenilir Kök Sertifikasyon \ Sertifikalara eklemek işi benim için yaptı. Teşekkürler! (Başka biri için, benim durumumda sertifikayı Yerel Bilgisayar \ Kişisel \ Sertifikalar bölümünde zaten aldım)
David Aleu

1

Geçersiz girişler için web.config dosyasını kontrol edin. Örneğin, orada "entityFramework" etiketinin olması benim için bu soruna neden oluyor.


1

Ayarları değiştirirken bu sorunu yaşadım ve Proje> Özellikler> Hata Ayıklama'da " Anonim Kimlik Doğrulamayı Etkinleştir " seçeneğini devre dışı bıraktım . Etkin olduğundan emin olun. Projeyi kapatıp yeniden başlatıp tekrar deneyin. Bu yardımcı olur umarım.


Aynı sorunu yaşadım, ancak yalnızca anonimliği etkinleştirmek yerine, anonim veya Windows kimlik doğrulamasını etkinleştirmem gerekiyordu. İkisi de yanlışsa, hatayı aldım.
birken25

1

RC1 ve EF First Code Approach'u kullandım. Araştırmaya başlamak için iyi bir fikir, projeyi şu seçenekle çalıştırmaktır: "Projeyi hata ayıklamadan başlat" (Ctrl + F5). Sonra benim için daha anlamlı bir hata alıyorum: "'entityFramework' yapılandırma bölümü, bir bölüm bildirimi eksik olduğu için okunamıyor." Web.config dosyası yüzünden benim için çalışmadı.


1
  1. Dnvm'yi güncelle
  2. Global.json sdk sürümünü dnvm'nin varsayılanı olarak değiştirin
  3. Project.json veya project.lock.json 'a dokunmanıza gerek yok

0

Beta7 -> beta8'den yükseltme yaparken bu sorunu yaşadım ve Ben M ve Domysee tarafından sağlanan öneriler benim için çalıştı. Ancak meslektaşlarımdan biri hala dnxcore50sadece hedeflediğimiz projemizi yürütmekte sorun yaşıyordu . Aşağıdaki komutları çalıştırdığınızdan emin olursanız:

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

Onu makinesine sabitleyen, özellikle ikinci komuttu. Ayrıca bu klasörün içinde bir tane dnx.exeolduğunu iki kez kontrol edebilirsiniz :

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

0

Buna neden olan bir problem daha keşfettim!

web.configproje kök dizininde HTTPS'yi zorunlu kılmak için bazı tehlikeli IIS URL yeniden yazma kuralları vardı. Bu kuralları kaldırmak sorunu çözdü.


0

Bu hataya neden olabilecek pek çok şey var. İşte benim için çalışan birkaç tanesi:

  1. Sadece silmek web.configiçin de wwwrootklasöründe. Derlemede doğru şekilde yeniden oluşturulacaktır.
  2. Kullanmak çalışıyorsanız SSLve Gözlerinde farklı IIS Expressve keşfetmenize hareketli SSL Certiçin Trusted Root Certification Authoritiesklasörün işi yoktu. In Debugsekmesinde Propertiesprojesinin çalıştırmak çalışıyoruz. Enable SSLOnay kutusunun işaretini kaldırmayı ve ardından etkinleştirmek ve farklı bir bağlantı noktası almak için tekrar tıklamayı deneyin . Bunu birkaç kez yapmanız gerekebilir.

0

Başka bir olası çözüm
SSL ayarlarıyla oynayan herkes için, sadece şuradaki SSL bağlantı noktasını değiştirmeyi buldumlaunchSettings.json dosyadaki yakındaki başka bir bağlantı noktasına değiştirmenin sorunu çözdüğünü .

Bilginize, makinede orijinal bağlantı noktasını kullanarak hiçbir şey bulamadım veya kullanımda bağlantı noktası hatası almadım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.