Я получаю это сообщение об ошибке, когда пытаюсь запустить приложение.
Произошла ошибка при попытке определить идентификатор процесса DNX, на котором размещено ваше приложение.
Есть ли способ решить проблему?
Ответы:
Для меня проблема была решена закрытием Visual Studio, удалением
project.lock.json
и снова запустить Visual Studio.
Изменить : я использовал RC1.
project.lock.json
?
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 в моем applicationUrl. Насколько я понимаю, applicationUrl должен быть именем хоста / портом http приложения, и, заполнив sslPort, он просто настраивает среду IIS Express для прослушивания https на имени хоста, указанном в applicationUrl на порту, указанном в sslPort.
Например:
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:44000",
"sslPort": 44300
}
}
Предоставляет следующие две конечные точки на localhost.
Если бы у вас был один и тот же порт в настройках 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",
}
и измените свой hosting.ini
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».
Следуя этому руководству, я получил аналогичную ошибку.
Сначала я получил сообщение об ошибке: «Произошла ошибка при попытке определить идентификатор процесса 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" />
Предполагая, что вы используете IIS Express с включенным SSL, в зависимости от вашей установки вам нужно будет поместить свой сертификат разработки IIS Express (выданный на «localhost» / выданный «localhost») либо в [Local Computer \ Personal \ Certificates], либо в [Local Computer \ Сертификация доверенного корня \ Сертификаты]. Один из них должен работать. (Используется Windows 10 + VS2015). HTH
Проверьте файл web.config на наличие недопустимых записей. Например, наличие тега entityFramework вызывает у меня эту проблему.
У меня была эта проблема, когда я переключаю настройки и отключил « Включить анонимную аутентификацию » в Project> Properties> Debug. Убедитесь, что он включен. Закройте и перезапустите проект, затем повторите попытку. Надеюсь это поможет.
Я использовал подход первого кода RC1 и EF. Хорошая идея для начала исследования - запустить проект с опцией: «Начать проект без отладки» (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
флажок, а затем щелкните его еще раз, чтобы включить его и получить другой порт. Возможно, вам придется проделать это несколько раз.Еще одно возможное решение.
Для тех, кто играет с настройками SSL, я обнаружил, что простое изменение SSL-порта в launchSettings.json
файле на другой ближайший порт решило проблему.
К вашему сведению, я не смог ничего найти на машине, использующей исходный порт, и не получил ошибку использования порта.