Произошла ошибка при попытке определить идентификатор процесса процесса DNX, на котором размещено ваше приложение

Я получаю это сообщение об ошибке, когда пытаюсь запустить приложение.

Произошла ошибка при попытке определить идентификатор процесса DNX процесс размещения вашего приложения

Есть ли способ исправить проблему?

Ответ 1

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

project.lock.json

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

Изменить: я использовал RC1.

Ответ 2

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 также может помочь.

Ответ 3

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

В вашем проекте используется SSL или запускается его без отладки (CTRL + F5), и он попросит вас создать локальный сертификат SSL, после чего отладка будет работать, и ошибка исчезнет.

Ответ 4

Для чего это стоит, это общее сообщение об ошибке, которое может служить красной селедой для любого количества проблем, когда httpPlatformHandler не может запустить данный исполняемый файл (dnx в этом случае).

В моем случае я получил эту ошибку как прямой результат непонимания файла launchSettings.json. Я пытался включить конечную точку https для своего приложения и ошибочно дублировал sslport в своем приложении url. Насколько я понимаю, applicationUrl должен быть http hostname/port приложения, и, заполнив sslPort, он просто настраивает среду IIS Express для прослушивания https на имя хоста, указанное в приложении url на порту, представленном в sslPort.

Например:

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

Предоставляет следующие два конечных точки на локальном хосте.

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

Если у вас должен быть тот же порт в настройках applicationUrl и sslPort, вы получите сообщение об ошибке, связанную с этим потоком.

Это верно для меня на RC1

Ответ 5

Можно обновить, я обнаружил, что мне пришлось просматривать новые обновленные шаблоны здесь.

Обновите свой web.config в wwwroot, чтобы включить:

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

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

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

и изменение вашего хостинга.

server=Microsoft.AspNet.Server.Kestrel

и добавив это в метод Configure в startup.cs

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

Добавление этих ссылок должно позволить вам запустить проект.

Ответ 6

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

Другим способом обойти это было переключение пусковой установки с "IIS Express" на "Web"

Ответ 7

Предполагая, что вы запускаете IIS Express с включенным SSL в зависимости от вашей установки, вам нужно будет поместить сертификат развития IIS Express (выпущен на "localhost" / "Выдан" по "localhost" ) либо в [Local Computer\Personal\Certificates], либо в [Локальный компьютер \Trusted Root Certification\Certificates]. Один из них должен работать. (С использованием Windows 10 + VS2015). НТН

Ответ 8

В Visual Studio:

Во время этого урока я получил аналогичную ошибку.

Во-первых, я получил сообщение об ошибке: "Произошла ошибка при попытке определить идентификатор процесса dotnet.exe..." Я сделал следующие шаги.

  • Я начал свое приложение без отладки CTRL + F5.
  • Затем мне была предоставлена ​​возможность принять самозаверяющий сертификат для localhost.
  • Я выполнил приглашения, а затем смог посетить мое приложение с помощью скопированного AppUrl после включения SSL в настройках отладки проекта.

При попытке решить эту проблему я также столкнулся с этой ошибкой. "Произошла ошибка при попытке определить идентификатор процесса процесса DNX, на котором размещено ваше приложение"

Это вызвано тем, что другой экземпляр приложения запущен.

Я надеюсь, что этот ответ поможет кому-то.

Ответ 9

В моем случае в проекте asp net core 1.1,.net framework 4.5.2 ошибка не относится к dnx, так как этого больше нет. Вместо этого он ссылался на название проекта exe. Другая версия ошибки относится просто к невозможности подключения к iis express.

Проблема заключалась в введении правила перезаписи канонического имени хоста, которое пытается заставить все соединения иметь имя хоста, которое начинается с www. например перенаправление gty.org на www.gty.org, чтобы соответствовать нашему сертификату ssl. Это нормально в производстве, но вы не можете заставить 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>

Решение заключалось в том, чтобы прокомментировать правило при работе в visual studio или добавить условие:

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

Ответ 10

Проверьте файл web.config на недопустимые записи. Например, наличие тега "entityFramework" вызывает эту проблему для меня.

Ответ 11

У меня возникла эта проблема, когда я переключаю настройки и отключил " Включить анонимную проверку подлинности" в Project > Properties > Debug. Убедитесь, что он включен. Закройте и перезапустите проект, затем повторите попытку. Надеюсь, это поможет.

Ответ 12

Я использовал подход первого кода RC1 и EF. Хорошая идея начать исследование - запустить проект с опцией: "Начать проект без debbuging" (Ctrl + F5). Затем я получаю более значимую ошибку для меня: "Раздел конфигурации" entityFramework "не может быть прочитан, потому что ему не хватает объявления раздела". Это не сработало для меня из-за файла web.config.

Ответ 13

  • Обновить dnvm
  • Измените версию global.json sdk как dnvm default
  • Не нужно касаться project.json или project.lock.json

Ответ 14

При обновлении с beta7 → beta8 у меня была эта проблема, и предложения, предоставленные Ben M и Domysee, работали для меня. Однако у одного из моих коллег все еще были проблемы с запуском нашего проекта, который нацелен только на 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

Ответ 15

Есть так много вещей, которые могут вызвать эту ошибку. Вот несколько, которые работали для меня:

  • Просто удалите web.config в вашей папке wwwroot. Он будет правильно воссоздан при компиляции.
  • Если вы пытаетесь использовать SSL и в своем IIS Express и перемещение папки SSL Cert в папку Trusted Root Certification Authorities не работает. На вкладке Debug проекта Properties проекта, который вы пытаетесь запустить. Попробуйте снять флажок Enable SSL и снова щелкнуть его, чтобы включить его и получить другой порт. Возможно, вам придется сделать это несколько раз.

Ответ 16

Я только что обнаружил еще одну проблему, которая вызывала это!

web.config в корне проекта были некоторые изворотливые правила перезаписи URL-адресов IIS для обеспечения HTTPS. Удаление этих правил решило проблему.

Ответ 17

Другое потенциальное решение
Для тех, кто играет с настройками SSL, я обнаружил, что просто изменил порт SSL в файле launchSettings.json на другой соседний порт, решив проблему.

FYI, я не мог найти что-либо на машине, используя исходный порт, и не получил ошибку использования порта.

Ответ 18

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

WebApplication.csproj.user

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