ฉันได้รับข้อความแสดงข้อผิดพลาดนี้เมื่อฉันพยายามเริ่มแอปพลิเคชัน
เกิดข้อผิดพลาดขณะพยายามกำหนดรหัสกระบวนการของกระบวนการ DNX ที่โฮสต์แอปพลิเคชันของคุณ
มีวิธีแก้ไขปัญหาหรือไม่?
ฉันได้รับข้อความแสดงข้อผิดพลาดนี้เมื่อฉันพยายามเริ่มแอปพลิเคชัน
เกิดข้อผิดพลาดขณะพยายามกำหนดรหัสกระบวนการของกระบวนการ DNX ที่โฮสต์แอปพลิเคชันของคุณ
มีวิธีแก้ไขปัญหาหรือไม่?
คำตอบ:
สำหรับฉันปัญหาได้รับการแก้ไขโดยการปิด Visual Studio ลบ
project.lock.json
และเริ่ม Visual Studio อีกครั้ง
แก้ไข : ฉันใช้ RC1
project.lock.json
?
ไมโครซอฟท์มีการเปลี่ยนแปลงรูปแบบโฮสติ้งที่อธิบายไว้ในบันทึกประจำรุ่น
ใน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
และเพิ่มสิ่งนี้ลงในวิธีกำหนดค่าใน startup.cs
// Add the platform handler to the request pipeline.
app.UseIISPlatformHandler();
การเพิ่มการอ้างอิงเหล่านี้จะช่วยให้คุณสามารถเรียกใช้โครงการได้
ฉันพบปัญหานี้เนื่องจากการกำหนดค่าโครงการพยายามเปิดhttps: // localhostแทนที่จะเป็น http คลิกขวาที่โครงการในเว็บภายใต้ "Debug" และปรับ "App URL" ให้เป็น http แทน https
อีกวิธีหนึ่งในการแก้ไขปัญหานี้คือการเปลี่ยน Launcher จาก "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>
วิธีแก้ปัญหาคือการแสดงความคิดเห็นเกี่ยวกับกฎเมื่อทำงานในสตูดิโอภาพหรือเพิ่มเงื่อนไข:
<add input="{HTTP_HOST}" negate="true" pattern="^localhost" />
สมมติว่าคุณใช้งาน IIS Express ด้วย SSL ที่เปิดใช้งานขึ้นอยู่กับการติดตั้งของคุณคุณจะต้องใส่ใบรับรองการพัฒนา IIS Express (ออกให้กับ "localhost" / ออกโดย "localhost") ใน [Local Computer \ Personal \ Certificates] หรือ [Local Computer \ Trusted Root Certification \ Certificates] หนึ่งในนั้นควรใช้งานได้ (ใช้ Windows 10 + VS2015) HTH
ตรวจสอบไฟล์ web.config สำหรับรายการที่ไม่ถูกต้อง ตัวอย่างเช่นการมีแท็ก "entityFramework" ทำให้เกิดปัญหานี้สำหรับฉัน
ฉันประสบปัญหานี้เมื่อฉันสลับการตั้งค่าและได้ปิดใช้งาน " เปิดใช้งานการตรวจสอบความถูกต้องแบบไม่ระบุตัวตน " ในโครงการ> คุณสมบัติ> ดีบัก ตรวจสอบให้แน่ใจว่าเปิดใช้งานแล้ว ปิดและเปิดโปรเจ็กต์ใหม่จากนั้นลองอีกครั้ง หวังว่านี่จะช่วยได้
ฉันใช้ RC1 และ EF First Code Approach ความคิดที่ดีในการเริ่มต้นการตรวจสอบคือเรียกใช้โปรเจ็กต์ด้วยตัวเลือก: "เริ่มโปรเจ็กต์โดยไม่ต้องดีบั๊ก" (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
ในรูทโปรเจ็กต์มีกฎการเขียน URL IIS ที่หลบเลี่ยงเพื่อบังคับใช้ HTTPS การลบกฎเหล่านั้นช่วยแก้ปัญหาได้
มีหลายสิ่งหลายอย่างที่อาจทำให้เกิดข้อผิดพลาดนี้ นี่คือบางส่วนที่เหมาะกับฉัน:
web.config
ในwwwroot
โฟลเดอร์ของคุณ มันจะถูกสร้างขึ้นใหม่อย่างถูกต้องในการรวบรวมSSL
และในของคุณIIS Express
และย้ายSSL Cert
ไปยังTrusted Root Certification Authorities
โฟลเดอร์ไม่ได้ผล ในDebug
แท็บของProperties
โครงการที่คุณพยายามเรียกใช้ ลองยกเลิกการEnable SSL
คลิกช่องทำเครื่องหมายแล้วคลิกอีกครั้งเพื่อเปิดใช้งานและรับพอร์ตอื่น คุณอาจต้องทำสองสามครั้งอีกวิธีที่เป็นไปได้
สำหรับทุกคนที่เล่นด้วยการตั้งค่า SSL ฉันพบว่าเพียงแค่เปลี่ยนพอร์ต SSL ในlaunchSettings.json
ไฟล์เป็นพอร์ตใกล้เคียงอื่นช่วยแก้ปัญหาได้
FYI ฉันไม่พบสิ่งใดในเครื่องโดยใช้พอร์ตดั้งเดิมและฉันไม่ได้รับข้อผิดพลาดในการใช้พอร์ต