Під час визначення ідентифікатора процесу DNX-процесу, що розміщує вашу програму, сталася помилка


101

Я отримую це повідомлення про помилку, коли я намагаюся запустити програму.

Під час визначення ідентифікатора процесу DNX-процесу, що розміщує вашу програму, сталася помилка

Чи є спосіб виправити проблему?

Відповіді:


151

Для мене проблему було вирішено закриттям Visual Studio, видаленням

project.lock.json

і знову запустити Visual Studio.

Редагувати : я використовував RC1.


2
Вирішив мою проблему в проекті RC1
Надав Гурі

@NadavHury Те саме тут :)
ManyRootsofAllEvil

1
Вирішили проблему, яку я мав, наприклад, додаток RC1, завантажений з PluralSight, дуже вдячний
tomRedox

5
це більше не працює. np microsoft. ми це зрозуміємо. знову і знову і ...

1
де є project.lock.json?
CodyBugstein

34

Microsoft змінила модель хостингу, як описано в примітках до випуску .

На project.jsonзміну залежності

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

з

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


У web.configв handlersрозділі видалити всі записи , крім

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

Повний web.configбуде виглядати так:

<?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 у мене виникла помилка після переміщення папки рішення. Після видалення binта objпапок все працювало знову.
Як зазначив user764754, просто перезапустити Visual Studio також може допомогти.


У новій моделі хостингу ви зовсім не використовуєте web.config і можете видалити його повністю. HttpPlatformHandler та Startup.cs витісняють web.config, оскільки ви певною мірою обминаєте IIS.
cygnim

2
Я використовую найновіші шаблони після встановлення спочатку 1.0.0-beta8, потім створюю новий проект ASP.NET у VS 2015. Усі записи правильні, все ж я отримую ту ж помилку, що і Domysee. Чи не могли б хтось пояснити, що означають "% DNX_PATH%" та "% DNX_ARGS%"?
okieh

1
Слід уточнити, вам не потрібен web.config у своєму проекті. Під час компіляції створюється мінімальний файл web.config, який в основному додає HttpPlatformHandler до конвеєра та спрямовує трафік від IIS до сервера Kestrel. Отже, ви маєте рацію, є файл web.config, але це не обов'язково в базі коду проекту.
cygnim

3
Щойно перезапуск VS зробив це для мене з RC-1, видалення не потрібно.
user764754

2
У мене була така ж проблема з RC1, для мене рішення було видалити web.config (в wwwroot)
rad

30

Для інших людей, які мають цю проблему, у випадках, коли інші рішення не працюють - я знайшов відповідь у цій темі: Примушування використовувати SSL: сталася помилка при спробі визначення ідентифікатора процесу DNX-процесу, що розміщує вашу програму

Якщо ваш проект використовує або примушує SSL запускати його без налагодження (CTRL + F5) спочатку, він попросить вас створити локальний сервер SSL, а після цього налагодження запрацює, і помилка не буде зникла.


Це зафіксувало це для мене. Я перемістив свій проект на новий комп'ютер, на якому не було встановлено сертифікат. Дякую.
Темп

Приємно, це було! Я зазначу це на сторінці "Увімкнення автентифікації за допомогою Facebook ...", оскільки їх інструкції містять форсування SSL.
N8allan

Я не міг змусити його працювати, роблячи CTRL + F5. F5 працював після запуску цього, щоб довіряти моїм iis express certs. У мене не було попереджень, але це зафіксувало це для мене.
Джош Близько

11

Оскільки це варте, це загальне повідомлення про помилку, яке може послужити червоною оселедцем до будь-якої кількості проблем, де httpPlatformHandler не може запустити даний виконуваний файл (dnx у цьому випадку).

У моєму випадку я отримав цю помилку як прямий результат нерозуміння файла startSettings.json. Я намагався ввімкнути кінцеву точку https для моєї програми та помилково дублював sslport у своїй програміUrl. Як я розумію, applicationUrl має бути http ім'ям хоста / порту програми, і, заповнивши sslPort, він просто налаштовує середовище IIS Express для прослуховування https на ім'я хоста, вказане в applicationUrl на порту, передбаченому в sslPort.

Наприклад:

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

Надає наступні дві кінцеві точки на localhost.

  • Http через порт 44400
  • Https через порт 44300

Якщо ви мали б однаковий порт у налаштуваннях applicationUrl та sslPort, ви отримаєте помилку, пов’язану з цим потоком.

Це справедливо для мене на RC1


Чому саме sslPort повинен відрізнятися від applicationUrl? Це працювало для мене до RTM ...
Борис Ліпшиц

У мене виникла помилка: не вдалося підключитися до веб-сервера 'IIS Express', і після видалення файлу "\ .vs \ config \ applicationhost.config" у мене з’явилася помилка "сталася помилка при спробі ...". У проекті propperties> налагодження Я відключив SSL, запустив налагоджувач (працює), знову поставив галочку SSL і скопіював URL у "URL-адресу програми", налагодження в режимі SSL знову працює. Помилка з'явилася після оновлення Windows, але не впевнений, чи це було причиною. Мої iisSettings зараз "iisExpress": {"applicationUrl": " localhost: 44369 ", "sslPort": 44369} .. працює, якщо номери портів не однакові
JimiSweden

6

Можливе оновлення, я виявив, що мені довелося переглянути нові оновлені шаблони тут .

Оновіть свою web.config в wwwroot, щоб вона включала:

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

Вам також потрібно буде змінити спосіб налагодження проекту за допомогою Kestrel , змінивши проект.json:

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

та змінення вашого hosting.ini

server=Microsoft.AspNet.Server.Kestrel

і додавши це до методу Налаштування в startup.cs

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

додавання цих посилань повинно дозволяти запускати проект.


5

Я потрапив у цю проблему через налаштування проекту, який намагався запустити https: // localhost замість http. Клацніть правою кнопкою миші на веб-проект, у розділі "Налагодження" та відрегулюйте "URL-адреса програми", щоб вона була http замість https. введіть тут опис зображення

Ще одним способом подолати це було перемикання пускової установки з "IIS Express" на "Web"


3

У Visual Studio:

Під час виконання цього підручника я отримав подібну помилку.

По-перше, я отримав помилку: "Під час спроби визначити ідентифікатор процесу dotnet.exe сталася помилка." Я зробив наступні кроки.

  1. Я запустив свою програму без налагодження CTRL + F5.
  2. Потім мені запропонували можливість прийняти самопідписаний сертифікат для localhost.
  3. Я дотримувався підказок, і тоді я зміг відвідати свою програму за допомогою копіювання AppUrl, який я скопіював після включення SSL у налаштуваннях налагодження проекту.

Намагаючись вирішити цю помилку, я також натрапив на цю помилку. "Під час встановлення ідентифікатора процесу DNX-процесу, що розміщує вашу програму, сталася помилка"

Це було викликано запуском ще одного примірника програми.

Я сподіваюся, що ця відповідь комусь допоможе.


Зачекайте, значить, відповідь "викликана тим, що інший приклад програми запущений"? Слід зробити це більш очевидним.
Кривавий

2

У моєму випадку в проекті Asp net core 1.1, .net Framework 4.5.2, помилка не стосувалася dnx, оскільки цього більше немає. Натомість він посилався на назву проекту exe. Ще одна версія помилки стосувалася просто неможливості підключення до iis express.

Проблемою було запровадження канонічного правила перезапису імені хоста, яке намагається змусити всі з'єднання мати ім'я хоста, що починається з www. наприклад, перенаправлення gty.org на www.gty.org, щоб відповідати нашому ssl cert. Це добре в виробництві, але ви не можете змусити https: // localhost: 44347 / почати з www і очікувати, що iis express зможе це впоратися.

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

Рішенням було прокоментувати це правило під час роботи у візуальній студії або додати умову:

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

2

Якщо припустити, що ви працюєте з IIS Express із включеним SSL залежно від встановлення, вам доведеться покласти свій сертифікат розвитку IIS Express (виданий "localhost" / виданий "localhost") або в [Локальний комп'ютер \ Особисті \ Сертифікати] або [Локальний комп'ютер \ Довірена коренева сертифікація \ Сертифікати]. Один з них повинен працювати. (За допомогою Windows 10 + VS2015). HTH


Додавання сертифіката розвитку IIS Express в локальний комп'ютер \ Довірена коренева сертифікація \ Сертифікати зробила мені роботу. Дякую! (Для будь-кого іншого, у моєму випадку я вже мав сертифікат у місцевому комп’ютері \ персональний \ сертифікати)
David Aleu

1

Перевірте файл web.config на наявність недійсних записів. Наприклад, тег "entitFramework" там викликає цю проблему для мене.


1

У мене виникли проблеми, коли я перемикав налаштування та відключив " Увімкнути анонімну автентифікацію " в проекті> Властивості> Налагодження. Переконайтесь, що він увімкнено. Закрийте та відновіть проект, а потім спробуйте ще раз. Сподіваюся, це допомагає.


У мене був той самий випуск, але замість того, щоб лише ввімкнути анонімні дані, мені довелося ввімкнути або анонімну, або автентифікацію Windows. Якщо обидва були помилковими, я отримав помилку.
birken25

1

Я використав RC1 і перший код підхід. Доброю ідеєю для початку дослідження є запуск проекту з опцією: "Запустити проект без налагодження" (Ctrl + F5). Тоді я отримую для мене більш значущу помилку: "Розділ конфігурації 'entitFramework' неможливо прочитати, оскільки в ньому відсутня декларація розділу." Це не працювало для мене через файл web.config.


1
  1. Оновіть dnvm
  2. Змініть версію sdk global.json як стандартну для dnvm
  3. Не потрібно торкатися project.json або project.lock.json

0

Під час оновлення до версії beta7 -> beta8 у мене виникла ця проблема, і пропозиції, надані Бен М та Домісі, працювали на мене. Однак у одного з моїх колег все ще виникали проблеми при виконанні нашого проекту, який спрямований dnxcore50лише на це. Якщо ви переконайтеся, що виконали такі команди:

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

Саме друга команда, зокрема, зафіксувала його на своїй машині. Ви також можете двічі перевірити, чи ця папка має dnx.exeв ній:

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

0

Я щойно виявив ще одну проблему, яка викликала це!

web.configу корені проекту було кілька химерних правил перезапису URL-адрес IIS для застосування HTTPS. Видалення цих правил вирішило проблему.


0

Просто так багато речей, які можуть викликати цю помилку. Ось декілька, які працювали на мене:

  1. Просто видаліть папку web.configу своїй wwwrootпапці. Це буде відтворено правильно при компіляції.
  2. Якщо ви намагаєтеся використовувати SSLі в вашому, так IIS Expressі переміщення свого SSL Certдо Trusted Root Certification Authoritiesпапки, не вийшло. На Debugвкладці Propertiesпроекту, який ви намагаєтеся запустити. Спробуйте зняти Enable SSLпрапорець і знову клацніть його, щоб увімкнути його та отримати інший порт. Можливо, вам доведеться це зробити кілька разів.

0

Ще одне потенційне рішення
Для всіх, хто грає з налаштуваннями SSL, я знайшов просто зміну SSL-порту вlaunchSettings.json файлі на інший сусідній порт вирішила проблему.

FYI, я не міг нічого знайти на машині за допомогою оригінального порту, а також не отримав порту під час використання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.