Я получаю это сообщение об ошибке, когда пытаюсь запустить приложение.
Произошла ошибка при попытке определить идентификатор процесса DNX процесс размещения вашего приложения
Есть ли способ исправить проблему?
Я получаю это сообщение об ошибке, когда пытаюсь запустить приложение.
Произошла ошибка при попытке определить идентификатор процесса DNX процесс размещения вашего приложения
Есть ли способ исправить проблему?
Для меня проблема была решена закрытием Visual Studio, удалением
project.lock.json
и снова запустите Visual Studio.
Изменить: я использовал RC1.
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 также может помочь.
Для других людей, имеющих эту проблему, в тех случаях, когда другие решения не работают, я нашел ответ в этой теме: Принуждение к использованию SSL: ошибка, связанная с попыткой определить идентификатор процесса процесса DNX, принимающего ваше приложение
В вашем проекте используется SSL или запускается его без отладки (CTRL + F5), и он попросит вас создать локальный сертификат SSL, после чего отладка будет работать, и ошибка исчезнет.
Для чего это стоит, это общее сообщение об ошибке, которое может служить красной селедой для любого количества проблем, когда 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
}
}
Предоставляет следующие два конечных точки на локальном хосте.
Если у вас должен быть тот же порт в настройках applicationUrl и sslPort, вы получите сообщение об ошибке, связанную с этим потоком.
Это верно для меня на RC1
Можно обновить, я обнаружил, что мне пришлось просматривать новые обновленные шаблоны здесь.
Обновите свой 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();
Добавление этих ссылок должно позволить вам запустить проект.
Я столкнулся с этой проблемой из-за конфигурации проекта, пытающейся запустить https://localhost вместо http. Щелкните правой кнопкой мыши веб-проект в разделе "Отладка" и настройте "URL-адрес приложения" как http вместо https.
Другим способом обойти это было переключение пусковой установки с "IIS Express" на "Web"
Предполагая, что вы запускаете IIS Express с включенным SSL в зависимости от вашей установки, вам нужно будет поместить сертификат развития IIS Express (выпущен на "localhost" / "Выдан" по "localhost" ) либо в [Local Computer\Personal\Certificates], либо в [Локальный компьютер \Trusted Root Certification\Certificates]. Один из них должен работать. (С использованием Windows 10 + VS2015). НТН
Во время этого урока я получил аналогичную ошибку.
Во-первых, я получил сообщение об ошибке: "Произошла ошибка при попытке определить идентификатор процесса dotnet.exe..." Я сделал следующие шаги.
При попытке решить эту проблему я также столкнулся с этой ошибкой. "Произошла ошибка при попытке определить идентификатор процесса процесса DNX, на котором размещено ваше приложение"
Это вызвано тем, что другой экземпляр приложения запущен.
Я надеюсь, что этот ответ поможет кому-то.
В моем случае в проекте 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" />
Проверьте файл web.config на недопустимые записи. Например, наличие тега "entityFramework" вызывает эту проблему для меня.
У меня возникла эта проблема, когда я переключаю настройки и отключил " Включить анонимную проверку подлинности" в Project > Properties > Debug. Убедитесь, что он включен. Закройте и перезапустите проект, затем повторите попытку. Надеюсь, это поможет.
Я использовал подход первого кода RC1 и EF. Хорошая идея начать исследование - запустить проект с опцией: "Начать проект без debbuging" (Ctrl + F5). Затем я получаю более значимую ошибку для меня: "Раздел конфигурации" entityFramework "не может быть прочитан, потому что ему не хватает объявления раздела". Это не сработало для меня из-за файла web.config.
При обновлении с 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
Есть так много вещей, которые могут вызвать эту ошибку. Вот несколько, которые работали для меня:
web.config
в вашей папке wwwroot
. Он будет правильно воссоздан при компиляции.SSL
и в своем IIS Express
и перемещение папки SSL Cert
в папку Trusted Root Certification Authorities
не работает. На вкладке Debug
проекта Properties
проекта, который вы пытаетесь запустить. Попробуйте снять флажок Enable SSL
и снова щелкнуть его, чтобы включить его и получить другой порт. Возможно, вам придется сделать это несколько раз.Я только что обнаружил еще одну проблему, которая вызывала это!
web.config
в корне проекта были некоторые изворотливые правила перезаписи URL-адресов IIS для обеспечения HTTPS. Удаление этих правил решило проблему.
Другое потенциальное решение
Для тех, кто играет с настройками SSL, я обнаружил, что просто изменил порт SSL в файле launchSettings.json
на другой соседний порт, решив проблему.
FYI, я не мог найти что-либо на машине, используя исходный порт, и не получил ошибку использования порта.
Для меня проблема была решена закрытием Visual Studio, удалением
WebApplication.csproj.user
и снова запустите Visual Studio.