ASP.NET Core 1.0 บนข้อผิดพลาด IIS 502.5


112

ฉันเพียงแค่การปรับปรุงเซิร์ฟเวอร์ของฉัน (Windows 2012R2) เพื่อ.Net Core 1.0 RTMWindows Hosting .Net Core 1.0 RC2แพ็คจากก่อนหน้านี้ แอพของฉันทำงานบนพีซีของฉันโดยไม่มีปัญหาใด ๆ แต่เซิร์ฟเวอร์ยังคงแสดง:

HTTP Error 502.5 - Process Failure


Common causes of this issue:

The application process failed to start
The application process started but then stopped
The application process started but failed to listen on the configured port

ก่อนหน้านี้ใช้ได้กับรุ่น RC2 ไม่รู้ว่าเกิดอะไรขึ้น

นี่คือโปรแกรมดูเหตุการณ์ทั้งหมดที่พูดว่า:

Failed to start process with the commandline 'dotnet .\MyWebApp.dll'. Error code = '0x80004005'.

ส่วนที่แย่ที่สุดคือบันทึกแอปว่างเปล่า! ฉันหมายถึงไฟล์ stdout_xxxxxxxxx.log เหล่านั้นว่างเปล่าและทั้งหมดมีขนาด 0 ไบต์

ฉันควรทำอย่างไรดี?? จะทราบสาเหตุของข้อผิดพลาดได้อย่างไรเมื่อไม่ได้เข้าสู่ระบบ ??


อาจเกี่ยวข้อง? stackoverflow.com/questions/37362183/…
Brendan Green

3
เกี่ยวข้องกันอย่างไร? รหัสข้อผิดพลาดแตกต่างกันอย่างชัดเจน นับประสาอะไรกับที่ฉันบอกว่ามันทำงานบนพีซีของฉันเองที่มี IIS
Vahid Amiri

1
ก่อนอื่นฉันพูดว่าอาจเกี่ยวข้องเนื่องจากกล่าวถึงว่าFailed to start process with commandline 'dotnet ./bin/Debug/netcoreapp1.0/WebApplication2.dll', Error Code = '0x80004005'.- บรรทัดคำสั่งและรหัสข้อผิดพลาดเดียวกันกับที่คุณรายงาน ประการที่สองเพียงเพราะมันทำงานบนเครื่องของคุณ แต่ไม่ใช่เครื่องระยะไกลแสดงว่ามีบางอย่างที่แตกต่างกันบนเซิร์ฟเวอร์ หากคุณสามารถขยายเกี่ยวกับวิธีการปรับใช้แอปพลิเคชันกับเซิร์ฟเวอร์ได้นั่นจะเป็นประโยชน์
Brendan Green

คุณหมายถึงอะไรแอปของคุณที่ทำงานบนพีซีของคุณ .. คุณหมายความว่าคุณมีโครงการที่ปรับใช้กับ iis ฉันเป็นอะไรหรือเปล่า
Vijunav Vastivch

1
@ VSG24 คุณเห็นส่วนนี้ของเอกสาร asp.net หรือไม่ การเผยแพร่ไปยัง IISจะแสดงข้อผิดพลาดทั่วไปและมีสาเหตุสองประการที่ระบุไว้สำหรับข้อผิดพลาด 502.5
Hamid Mosalla

คำตอบ:


112

ฉันสามารถแก้ไขได้โดยการเรียกใช้

"C: \ Program Files \ dotnet \ dotnet.exe" "C: \ fullpath \ PROJECT.dll"

บนพรอมต์คำสั่งซึ่งทำให้ฉันมีข้อผิดพลาดที่มีความหมายมากขึ้น:

"ไม่พบเฟรมเวิร์กที่ระบุ 'Microsoft.NETCore.App' เวอร์ชัน '1.0.1' - ตรวจสอบการอ้างอิงแอปพลิเคชันและกำหนดเป้าหมายเวอร์ชันของเฟรมเวิร์กที่ติดตั้งที่: C: \ Program Files \ dotnet \ shared \ Microsoft.NETCore.App - มีการติดตั้งเวอร์ชันต่อไปนี้: 1.0.0 - หรือติดตั้งเวอร์ชันเฟรมเวิร์ก '1.0.1'

อย่างที่คุณเห็นฉันติดตั้ง NET Core ผิดเวอร์ชันบนเซิร์ฟเวอร์ของฉัน ฉันสามารถเรียกใช้แอปพลิเคชันของฉันได้หลังจากถอนการติดตั้งเวอร์ชันก่อนหน้า 1.0.0 และติดตั้งเวอร์ชัน 1.0.1 ที่ถูกต้อง


2
ฉันจัดการเพื่อใช้สิ่งนี้เพื่อค้นหาว่าฉันต้องการติดตั้ง NodeJS ... เพราะมันให้ "ข้อความที่มีความหมายมากกว่า"
Tim Harker

ฉันไม่สามารถบอกคุณได้ว่าฉันเสียเวลาไปกับเรื่องนี้มากแค่ไหน ขอบคุณ. ข้อผิดพลาดของฉันเกี่ยวข้องกับใบรับรองที่หายไป เหตุใดฉันจึงไม่ได้รับข้อผิดพลาดนี้ด้วยวิธีการที่มีเหตุผล
ปราก

4
ใครช่วยบอกหน่อยได้ไหมว่าคำสั่งคืออะไร? C: \ fullpath \ dotnet คืออะไร ?? เส้นทางไปยังแอปของคุณ แต่dotnetคืออะไร? ไม่มีไฟล์ dotnet ในโฟลเดอร์โปรเจ็กต์
Jeremy Thompson

9
@JeremyThompson เป็นเส้นทางของ dotnet.exe ซึ่งปกติจะอยู่ที่: C: \ Program Files \ dotnet \ dotnet.exe
hatsrumandcode

1
ฉันเพิ่งเจอข้อผิดพลาดนี้หลังจากการอัปเดตเป็น. NET CORE 2.1.3 ได้รับการแก้ไขโดยการติดตั้ง. NET SDK / รันไทม์ที่ถูกต้อง
Mike Bovenlander

68

ฉันมีปัญหาเดียวกันในกรณีของฉันมันได้รับอนุญาตไม่เพียงพอสำหรับข้อมูลประจำตัวผู้ใช้ของกลุ่มแอปพลิเคชันของฉันในหน้าการเผยแพร่ไปยัง IISของ asp.net doc มีสาเหตุสองประการที่ระบุไว้สำหรับข้อผิดพลาดนี้:

  • หากคุณตีพิมพ์เป็นโปรแกรมที่ตนเองมียืนยันว่าคุณไม่ได้ตั้งเวทีในbuildOptionsของproject.jsonความขัดแย้งว่าด้วยการเผยแพร่กรมชลประทาน ตัวอย่างเช่นอย่าระบุแพลตฟอร์ม x86 และเผยแพร่ด้วย RID ของ win81-x64 ( dotnet publish -c Release -r win81-x64) โครงการจะเผยแพร่โดยไม่มีคำเตือนหรือข้อผิดพลาด แต่ล้มเหลวด้วยข้อยกเว้นที่บันทึกไว้ข้างต้นบนเซิร์ฟเวอร์
  • ตรวจสอบprocessPathแอตทริบิวต์ของ<aspNetCore>องค์ประกอบใน web.config เพื่อยืนยันว่าเป็นdotnetแอปพลิเคชันแบบพกพาหรือ. \ my_application.exe สำหรับแอปพลิเคชันในตัว
  • สำหรับแอปพลิเคชันแบบพกพาdotnet.exeอาจไม่สามารถเข้าถึงได้ผ่านการตั้งค่า PATH ยืนยันว่าC:\Program Files\dotnet\มีอยู่ในการตั้งค่า System PATH
  • สำหรับแอปพลิเคชันแบบพกพาdotnet.exeอาจไม่สามารถเข้าถึงได้สำหรับข้อมูลประจำตัวผู้ใช้ของ Application Pool ยืนยันว่าข้อมูลประจำตัวผู้ใช้ AppPool เข้าถึงC:\Program Files\dotnetไดเร็กทอรี
  • ยืนยันว่าคุณได้อย่างถูกต้องอ้างอิงตัวกลาง IIS บูรณาการโดยการเรียกวิธีการของแอพลิเคชัน.UseIISIntegration()WebHostBuilder()
  • หากคุณกำลังใช้.UseUrls()วิธีขยายเมื่อตนเองพื้นที่กับชวายืนยันว่ามันอยู่ในตำแหน่งก่อนที่จะมีวิธีขยายบน.UseIISIntegration() ต้องตั้งค่าสำหรับย้อนกลับพร็อกซี่เมื่อทำงานอยู่เบื้องหลังชวา IIS และไม่คุ้มค่าคุ้มแทนที่โดยWebHostBuilder().UseIISIntegration()Url.UseUrls()

ในกรณีของฉันมันเป็นเหตุผลที่สี่ฉันเปลี่ยนโดยคลิกขวาที่แอปพูลของฉันและในการตั้งค่าขั้นสูงภายใต้ Process Model ฉันตั้งค่า Identity เป็นผู้ใช้ที่มีสิทธิ์เพียงพอ: ข้อมูลประจำตัวผู้ใช้ของ Application Pool ของฉัน


1
นี่คือคำตอบที่ฉันกำลังมองหา! ในกรณีของฉันมันก็คือแอปพลิเคชันพูลเช่นกัน ....
Armando Ramirez

3
ขอบคุณ. ในกรณีของฉันปัญหาคือเส้นทางไปยังดอทเน็ต พบบันทึกดังกล่าวในระบบ Event Failed to start process with commandline '"dotnet" .\PROJECT.dll', ErrorCode = '0x80070002'Viewer:
0x49D1

ฉันจะเพิ่มเหตุผลอื่น: "โปรแกรมติดตั้งไม่สามารถรับ VC ++ แจกจ่ายต่อได้" เนื่องจากเซิร์ฟเวอร์ของฉันไม่มีการเชื่อมต่ออินเทอร์เน็ตจึงไม่สามารถดาวน์โหลดแพ็คเกจนี้ได้ ... ดังนั้นคุณต้องดาวน์โหลดด้วยตนเอง: ลิงก์และติดตั้ง
Paco Mendez

4
dotnetอยู่ในเส้นทางของฉัน แต่ต้องรีสตาร์ทเซิร์ฟเวอร์เพื่อให้รู้จัก
Danny Cullen

ในกรณีของฉันฉันต้องระบุค่า --runtime ในคำสั่งเผยแพร่หากฉันระบุ --framework option เป็นอย่างอื่นอย่าให้ --framework และกำลังหารันไทม์ตามค่าเริ่มต้น
Gomes

66

ฉันใช้งานได้กับการรีเซ็ต IIS อย่างหนัก (ฉันเพิ่งติดตั้งแพ็คเกจโฮสติ้งเท่านั้น)

ปรากฎว่าการกด 'Restart' ใน IIS Manager นั้นไม่เพียงพอ ฉันต้องเปิดพรอมต์คำสั่งและพิมพ์ 'iisreset'


ฉันยังกด iis รีไซเคิลสีเขียวที่โหนดรูทของเว็บเซิร์ฟเวอร์ใน UI สิ่งนี้แก้ไขได้สำหรับฉันเมื่อรวมกับการตั้งค่าผู้ใช้สำหรับกลุ่มแอปถึงLocalSystem
JP Hellemons

ขอบคุณ Michael ... สิ่งนี้ช่วยแก้ปัญหาของฉันได้เช่นกัน หาคำตอบมาสองสามชั่วโมงแล้ว ขอบคุณ!
birwin

2
Tx! คำตอบของคุณทำให้ฉันนึกถึงสิ่งนี้จาก ms docs "รีสตาร์ทระบบหรือรันnet stop คือ / yตามด้วยnet start w3svcจากพรอมต์คำสั่งเพื่อรับการเปลี่ยนแปลง PATH ของระบบ" (หลังจากติดตั้งชุด. NET Core Windows Server Hosting)
Quinton Smith

แก้ไขปัญหาของฉันด้วย ขอบคุณ
พบกัน

ทำงานให้ฉัน ขอบคุณ :)
Husnain Shabbir

11

ดังนั้นฉันจึงได้เซิร์ฟเวอร์ใหม่คราวนี้เป็น Windows 2008R2 และแอปของฉันก็ทำงานได้ดี

ฉันไม่สามารถบอกได้อย่างแน่นอนว่าปัญหาเกิดจากเซิร์ฟเวอร์เก่า แต่ฉันมีความคิดอย่างหนึ่ง

เนื่องจากก่อนหน้านี้ฉันได้รวบรวมแอปโดยไม่คำนึงถึงแพลตฟอร์มใด ๆ มันจึงให้dllเวอร์ชันที่ใช้งานได้ก็ต่อเมื่อโฮสต์เป้าหมาย.Net Core Windows Hostingติดตั้งแพ็คเกจไว้ ในกรณีของฉันมีการติดตั้งและก็ใช้ได้

หลังจากที่แอปไม่ทำงานฉันตัดสินใจที่จะรวบรวมเป็นแอปคอนโซลพร้อมกับwin7-x64รันไทม์ ครั้งนี้เป็นช่วงเวลาที่ฉันรันexeแอพของฉันบนเซิร์ฟเวอร์มันเกิดข้อผิดพลาดเกี่ยวกับ dll ที่หายไป:

The program can't start because api-ms-win-crt-runtime-l1-1-0.dll is missing

dll นั่นคือจาก Universal C Runtime ที่รวมอยู่ในVisual C ++ Redistributable สำหรับ Visual Studio 2015

ฉันพยายามติดตั้งแพ็คเกจนั้น (ทั้ง x64 & x86) แต่ล้มเหลวทุกครั้ง (ไม่รู้ว่าทำไม) บน Windows Server 2012 R2

แต่เมื่อฉันพยายามติดตั้งในเซิร์ฟเวอร์ใหม่ Windows Server 2008 R2 พวกเขาติดตั้งสำเร็จ นั่นอาจเป็นเหตุผลเบื้องหลัง แต่ยังไม่สามารถพูดได้อย่างแน่นอน


5

ฉันมีปัญหาเดียวกันเมื่อเผยแพร่เว็บแอป หากใครยังคงมีปัญหานี้แก้ไขได้โดยเปลี่ยน{AppName} .runtimeconfig.json

    {
  "runtimeOptions": {
    "framework": {
      "name": "Microsoft.NETCore.App",
      "version": "1.1.2"
    },
    "configProperties": {
      "System.GC.Server": true
    }
  }
}

เปลี่ยนเวอร์ชันจาก"เวอร์ชัน": "1.1.2"เป็น"เวอร์ชัน": "1.1.1"และทุกการออกแบบก็ใช้ได้


5

ผมมีปัญหาเหมือนกัน.

ในการค้นหาแหล่งที่มาที่แน่นอนฉันได้เปิดใช้งานการเข้าสู่ระบบไฟล์ web.config:

<aspNetCore processPath="dotnet" arguments=".\MyWebService.dll" stdoutLogEnabled="**true**" stdoutLogFile=".\logs\stdout" />

และสร้างโฟลเดอร์ย่อยบันทึกในโฟลเดอร์รากของ MyWebService

หลังจากรีสตาร์ท IIS และพยายามเรียกใช้ API ฉันได้รับข้อผิดพลาดและไม่มี Core Runtime ที่เหมาะสม หลังจากดาวน์โหลดการติดตั้ง DotNetCore.1.0.5_1.1.2-WindowsHosting ข้อผิดพลาดหายไป


3
IMO คุณควรลบเครื่องหมายดอกจันออกจากค่า "จริง" เพื่อหลีกเลี่ยงความสับสน
AperioOculus

4

มีปัญหาเดียวกันและวิธีแก้ปัญหาทั้งหมดไม่ได้ผล พบอัญมณีนี้และคิดว่าฉันจะผ่านไปได้หากช่วยคนอื่นได้ ติดตั้งบน Server 2012 R2 ได้รับข้อผิดพลาดที่ขาดหายไปของ DLL ลองติดตั้ง VS C ++ 2015 ใหม่และได้รับข้อผิดพลาด การแก้ไขคือการทำสิ่งต่อไปนี้:

ดูเหมือนว่าไฟล์ C:\ProgramData\Package Cache\...\packages\Patch\x64\Windows8.1-KB2999226-x64.msuมีปัญหาในการติดตั้ง เปิดพรอมต์คำสั่งของผู้ดูแลระบบทำ:

c:
mkdir tmp
mkdir tmp\tmp
move "C:\ProgramData\Package Cache\...\packages\Patch\x64\Windows8.1-KB2999226-x64.msu" c:\tmp
expand -F:* c:\tmp\Windows8.1-KB2999226-x64.msu c:\tmp\tmp
dism /online /add-package /packagepath:c:\tmp\tmp\Windows8.1-KB2999226-x64.cab

หมายเหตุ: แทนที่ "... " ด้วยชื่อโฟลเดอร์ที่ถูกต้อง หลังจากติดตั้งแพ็คเกจ VS C ++ 2015 ใหม่


4

ผมมีปัญหาที่คล้ายกันและพูด Sherlock Holmes: " ? เมื่อคุณมีกรอบเป็นไปไม่ได้ในสิ่งที่ยังคงอยู่ แต่ไม่น่าจะต้องเป็นความจริง "

ฉันตรวจสอบว่าเฟรมเวิร์ก. NET ที่ฉันกำหนดเป้าหมายถูกติดตั้งบนเซิร์ฟเวอร์หรือไม่ แต่ปรากฎว่าไม่ใช่ ฉันติดตั้ง 4.6.2 .NET Framework และใช้งานได้


4

ฉันพบปัญหานี้ในเซิร์ฟเวอร์การผลิตของฉันหลังจากที่โครงการ VS ของฉันได้รับการอัปเกรดเป็น. NET Core 1.1.2 โดยอัตโนมัติ

ฉันเพิ่งติดตั้งรันไทม์คอร์ 1.1.2 .net จากที่นี่บนเซิร์ฟเวอร์การผลิตของฉัน: https://www.microsoft.com/net/download/core#/runtime


ฉันเจอปัญหาเดียวกัน แต่ด้วย net core 2.0.6 ที่เพิ่งเปิดตัว แก้ไขโดยการติดตั้ง net core SDK 2.0.6 บนเซิร์ฟเวอร์ที่ใช้งานจริง
dodbrian

4

แก้ไขฉันเพียงแค่วิ่งผ่านปัญหาเดียวกันในวันนี้ในขณะที่นำไปใช้กับAZURE จากนั้นฉันก็ลองทำแบบเดียวกันกับ IIS ในพื้นที่ได้รับปัญหาเดียวกัน เนื่องจากฉันเพิ่งเริ่มใช้. net CORE ไม่กี่ชั่วโมงก่อนที่ฉันจะแก้ไขได้จริง

ในโซลูชันของเราหลังจากที่ฉันเผยแพร่ไปยัง IIS ฉันสังเกตเห็นไฟล์ web.confile ของฉันโดยเฉพาะบรรทัดด้านล่าง <aspNetCore processPath="bin\IISSupport\VSIISExeLauncher.exe" arguments="-argFile IISExeLauncherArgs.txt" forwardWindowsAuthToken="false" stdoutLogEnabled="false" />

ในโฟลเดอร์การปรับใช้ของเรา web.config ที่สร้างขึ้นมีลักษณะดังนี้:<aspNetCore processPath="dotnet" arguments=".\Yodlee.dll -argFile IISExeLauncherArgs.txt" forwardWindowsAuthToken="false" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />

ตอนนี้โปรดลองเปลี่ยนการกำหนดค่าด้านบนในโซลูชัน Visual Studio เป็น<aspNetCore processPath="bin\IISSupport\VSIISExeLauncher.exe" forwardWindowsAuthToken="false" stdoutLogEnabled="false" />

ในโฟลเดอร์การปรับใช้ใหม่ของเรา web.config ที่สร้างขึ้นมีลักษณะดังนี้:<aspNetCore processPath="dotnet" arguments=".\Yodlee.dll" forwardWindowsAuthToken="false" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />

และสิ่งนี้ช่วยแก้ปัญหาของฉันหวังว่ามันจะช่วยได้


เฮ้ @Agni สิ่งนี้ได้ผลสำหรับฉันขอบคุณ แต่ทุกครั้งที่ฉันพยายามเผยแพร่โปรเจ็กต์อีกครั้งไปยัง Azure มันจะถูกสร้างขึ้นใหม่และ web.config จะเปลี่ยนกลับไปเป็นโปรเจ็กต์เดิมโดยอัตโนมัติโดยมีส่วนที่ทำให้เกิดปัญหา: "-argFile IISExeLauncherArgs.txt" คุณพบทางออกสำหรับสิ่งนั้นหรือไม่? (ฉันใช้ asp.net core 2.0)
Rodrigo Pires

1
ในกรณีของฉันฉันต้องเปลี่ยนprocessPath="dotnet"เป็นprocessPath="C:\Program Files\dotnet\dotnet.exe". จากนั้นก็ใช้งานได้
vaheeds

3

ฉันมีปัญหาเดียวกันเมื่อฉันอัปเดตเครื่อง dev เป็น Core 1.0.1 แต่ลืมอัปเดตเซิร์ฟเวอร์


สำหรับฉันฉันติดตั้ง net core SDK ใหม่จากที่นี่: microsoft.com/net/core#windows จากนั้นก็ใช้งานได้
ฌอง

1
VS2017 ตอนนี้คือ. NET Core 1.1 ตามค่าเริ่มต้น - เซิร์ฟเวอร์ระยะไกลทั้งหมดต้องได้รับการอัปเดตก่อนที่จะเผยแพร่ projs ที่อัปเกรดเป็น IIS คุณจะได้รับข้อความแสดงข้อผิดพลาดที่เป็นประโยชน์มากขึ้น (".NET core 1.1 ไม่ได้ติดตั้ง") แต่ทำงานอยู่dotnet .\YOURPROJDLL.dll
Coruscate5

3

ฉันได้รับข้อผิดพลาด HTTP 502.5 ขณะพยายามเผยแพร่. NET Core 2.0 API ของฉันไปยัง AWS EB และแก้ไขได้โดยการเพิ่มรหัสต่อไปนี้ใน. csproj:

  <PropertyGroup>
    <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
  </PropertyGroup>

2

ฉันมีปัญหาเดียวกัน ฉันเปลี่ยนข้อมูลประจำตัวพูลแอปพลิเคชันเป็นบัญชีบริการเครือข่าย จากนั้นฉันกำหนดเส้นทางไปยัง dotnet.exe อย่างชัดเจนใน web.config เพื่อให้แอปพลิเคชันทำงานได้อย่างถูกต้องตามที่ @danielyewright กล่าวไว้ในความคิดเห็นgithubของเขา ใช้งานได้หลังจากกำหนดเส้นทาง

ขอบคุณ


2

การแชร์นั้นในกรณีของฉันข้อผิดพลาดนี้เป็นเพราะฉันลืมอัปเดตproject.jsonด้วย:

"buildOptions": {
    "emitEntryPoint": true
  }

2

ฉันมีข้อผิดพลาดเดียวกันในคำถามโดยมีปัญหาเดียวกันกับที่อธิบายโดย VSG24 ในคำตอบที่เสนอ - ข้อความแสดงข้อผิดพลาดที่น่ารังเกียจเมื่อพิมพ์ 'dotnet' ใน CMD:

โปรแกรมไม่สามารถเริ่มทำงานได้เนื่องจากไม่มี api-ms-win-crt-runtime-l1-1-0.dll

ฉันแก้ไขสิ่งนี้ด้วยการติดตั้งการอัปเดต 2 รายการต่อไปนี้ด้วยตนเองบนWindows Server 2012 R2 (และข้อกำหนดเบื้องต้นและการอัปเดตอื่น ๆ ทั้งหมดที่เชื่อมโยง - อ่านคำแนะนำในการติดตั้งอย่างละเอียดบนเว็บไซต์ Microsoft):

  1. KB2919355
  2. KB2999226

หวังว่านี่จะช่วยใครบางคนได้


2

ฉันประสบปัญหาเดียวกันเมื่อพยายามเผยแพร่เวอร์ชันแก้ไขข้อบกพร่องของเว็บแอปพลิเคชันของฉัน ไฟล์ชุดนี้ไม่มีไฟล์ที่web.configมีค่าแอตทริบิวต์ที่processPathเหมาะสม

ฉันเอาไฟล์นี้มาจากรุ่น Release ค่าถูกกำหนดให้กับพา ธ ไปยังไฟล์ exe ของฉัน

<aspNetCore processPath=".\My.Web.App.exe" ... />

2

ในกรณีของฉันมีปัญหากับเวอร์ชัน Net Core ที่ติดตั้งบนเซิร์ฟเวอร์ ฉันเพิ่งติดตั้งเวอร์ชันเดียวกับในเครื่องพัฒนาของฉันและทุกอย่างก็โอเค :-)


2

ผมจำเป็นต้องมีการติดตั้ง .net รุ่นล่าสุดแกนพบที่นี่ ไม่จำเป็นต้องรีสตาร์ทไซต์หรือเซิร์ฟเวอร์


2

ฉันแก้ไขโดยเพิ่ม "สิทธิ์แก้ไข" ในแอปพลิเคชันของไซต์แมปไปยังไดเร็กทอรีทางกายภาพจากนั้นเลือกผู้ใช้ windows ที่สามารถเข้าถึงโฟลเดอร์รูทนี้ได้ (เครือข่ายส่วนตัว).


2

ในกรณีของฉันหลังจากติดตั้งAspNetCore.2.0.6.RuntimePackageStore_x64.exeและDotNetCore.2.0.6-WindowsHosting.exeฉันต้องรีสตาร์ทเซิร์ฟเวอร์เพื่อให้ทำงานได้โดยไม่มีเกตเวย์เสียและข้อผิดพลาดของพร็อกซี 502

UPDATE:

มีวิธีใช้โดยไม่ต้องรีสตาร์ท: https://stackoverflow.com/a/50808634/3634867


2

เปิดพรอมต์คำสั่งด้วยข้อมูลประจำตัวของผู้ดูแลระบบ

พิมพ์คำสั่งต่อไปนี้แล้วกด Enter

> IISRESET

หรือ

เปิดVisual Studio 2017ด้วยข้อมูลประจำตัวของผู้ดูแลระบบ

พิมพ์คำสั่งต่อไปนี้ในPackage Manager Consoleและกด Enter

PM > IISRESET

PM> IISRESET
Attempting stop...
Internet services successfully stopped
Attempting start...
Internet services successfully restarted

2

สำหรับฉันมันเกิดจากการติดตั้ง. Net Core เวอร์ชันต่างๆ ฉันจับคู่เซิร์ฟเวอร์การพัฒนาและเซิร์ฟเวอร์การผลิตของฉันและมันใช้งานได้


1

ฉันมีปัญหานี้เช่นกัน (ข้อผิดพลาดเกิดขึ้นทั้งใน VS 15 และ 17) อย่างไรก็ตามใน VS15 มันกลับCONNECTION_REFUSEDข้อผิดพลาดและ VS17 ASP.NET Core 1.0 on IIS error 502.5มันกลับมา

การแก้ไข

  1. ไปที่ไดเร็กทอรีโปรเจ็กต์ของคุณและค้นหาโฟลเดอร์ที่ซ่อนอยู่.vs(ซึ่งอยู่ใน dir โฟลเดอร์โปรเจ็กต์) (อย่าลืมแสดงไฟล์ / โฟลเดอร์ที่ซ่อนอยู่)

  2. ปิด VS

  3. ลบ. vs-folder
  4. เริ่ม VS ในฐานะผู้ดูแลระบบ (.vs-folder จะถูกสร้างขึ้นใหม่โดย VS)

1

นี่คือสิ่งที่ฉันคิดได้และสิ่งนี้เกิดขึ้นเมื่อเร็ว ๆ นี้บน Windows 10 หลังจากติดตั้งการอัปเดต จากสิ่งที่ฉันรวบรวมมามีการติดตั้งการอัปเดต Windows Defender ซึ่งถือว่า "Project.dll" ของฉัน (โครงการหลักของ asp.net) ทำงานเหมือนไวรัสจึงถูกลบ

ดังนั้นสิ่งแรกที่ฉันขอแนะนำให้คุณทำก่อนที่คุณจะเริ่มติดตั้ง / ถอนการติดตั้งสิ่งต่างๆคือการตรวจสอบเพื่อยืนยันว่า "Project.dll" ของคุณอยู่ในจุดใด

คัดลอกกลับไปยังตำแหน่งที่ตั้งหากไม่มีแล้ว

หากคุณกำลังประสบปัญหาในการคัดลอกไฟล์กลับเพิ่มการยกเว้นไปยังโฟลเดอร์โครงการของคุณใน Windows Defender ( เรียนรู้วิธีการทำที่นี่ )

สิ่งนี้ใช้ได้ผลสำหรับฉันทันทีและฉันทำซ้ำในเซิร์ฟเวอร์หลายแอปพลิเคชัน


1

สำหรับฉันแล้ว connectionString ใน Startup.cs เป็นโมฆะใน:

services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

และมันเป็นโมฆะเนื่องจากแอปพลิเคชันไม่ได้มองหา appsettings.json สำหรับสตริงการเชื่อมต่อ

ต้องเปลี่ยน Program.cs เป็น:

public static void Main(string[] args)
{
    BuildWebHost(args).Run();
}

public static IWebHost BuildWebHost(string[] args) =>
     WebHost.CreateDefaultBuilder(args)
     .ConfigureAppConfiguration((context, builder) => builder.SetBasePath(context.HostingEnvironment.ContentRootPath)
     .AddJsonFile("appsettings.json").Build())
     .UseStartup<Startup>().Build();

1

ฉันไม่รู้ว่าทำไมสิ่งนี้ถึงได้ผลสำหรับฉัน แต่ฉันใช้ Windows Authentication และฉันมีรหัสนี้อยู่BuildWebHostในProgram.cs:

.UseStartup<Startup>()
.UseHttpSys(options =>
{
    options.Authentication.Schemes =
        AuthenticationSchemes.NTLM | AuthenticationSchemes.Negotiate;
    options.Authentication.AllowAnonymous = false;
})
.Build();

หลังจากลบ.UserHttpSysบิตออกตอนนี้ใช้งานได้และฉันยังสามารถรับรองความถูกต้องในฐานะผู้ใช้โดเมนได้

BuildWebHost ตอนนี้ดูเหมือน

public static IWebHost BuildWebHost(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
    .UseStartup<Startup>()
    .Build();

ฉันมีการตรวจสอบสิทธิ์คุกกี้ใน aspnet core ฉันจะกำหนดค่าได้อย่างไร?
kudlatiger

@kudlatiger ขอโทษฉันไม่แน่ใจ - ทางออกที่ดีที่สุดของคุณคือสร้างคำถามแยกต่างหาก
Bassie

1

ฉันได้รับข้อผิดพลาดเดียวกันและพบว่าปัญหาคือในระหว่างการเผยแพร่ไปยัง Azure ไฟล์web.configของฉันได้รับการแก้ไขดังนั้นบรรทัดต่อไปนี้จึงลงเอยเช่นนี้:

<aspNetCore processPath="bin\IISSupport\VSIISExeLauncher.exe" arguments="-argFile IISExeLauncherArgs.txt" forwardWindowsAuthToken="false" stdoutLogEnabled="false" startupTimeLimit="3600" requestTimeout="23:00:00" />

ปัญหาสำหรับการผลิตคือเนื้อหาของอาร์กิวเมนต์: "-argFile IISExeLauncherArgs.txt"

ดูเหมือนว่าปัญหานี้จะได้รับการแก้ไขใน. NET Core SDK ถัดไป (ขณะนี้อยู่ในการแสดงตัวอย่าง) แต่สำหรับตอนนี้วิธีแก้ปัญหาคือการเพิ่มบล็อกนี้ในไฟล์. csproj:

<Target Name="bug_242_workaround" AfterTargets="_TransformWebConfig">
    <Exec Command="powershell &quot;(Get-Content '$(PublishDir)Web.config').replace(' -argFile IISExeLauncherArgs.txt', '') | Set-Content '$(PublishDir)Web.config'&quot;" />
  </Target>

การดำเนินการนี้จะแก้ไข web.config และลบส่วนที่มีปัญหาเพื่อเผยแพร่

อ้างอิง: https://github.com/aspnet/websdk/issues/242

หวังว่าจะช่วยได้


ทั้งสอง startupTimeLimit & requestTimeout attribs ที่เพิ่มเข้ามาดูเหมือนจะเป็นข้อผิดพลาดการขับรถ
Mark G

1

ทำงานให้ฉันหลังจากเปลี่ยนการกำหนดค่าการเผยแพร่

ใส่คำอธิบายภาพที่นี่


ขออภัยฉันไม่เห็นภาพในองค์กรของฉัน การดาวน์โหลดรูปภาพถูกบล็อก (ในองค์กรส่วนใหญ่)
ออกุสต์

0

ฉันมีปัญหาที่คล้ายกัน (Asp.Net Core 2.x) ที่เกิดจากการพยายามเรียกใช้แอปหลักของ asp.net 32 ​​บิตใน IIS บนเซิร์ฟเวอร์ Windows 64 บิต สาเหตุที่แท้จริงคือ web.config ที่สร้างขึ้นโดยอัตโนมัติ (หากโปรเจ็กต์ของคุณไม่ได้รวมไว้อย่างชัดเจนซึ่งโปรเจ็กต์หลักของ asp.net ไม่ได้เป็นค่าเริ่มต้น) ไม่มีพา ธ แบบเต็มไปยังไฟล์ปฏิบัติการดอทเน็ต เมื่อคุณติดตั้งโฮสติ้งบันเดิลบนเครื่อง 64 บิตระบบจะติดตั้ง dotnet เวอร์ชัน 64 และ 32 บิต แต่เส้นทางจะแก้ไขโดยค่าเริ่มต้นเป็น 64 บิตและแอปหลัก 32 บิต asp.net ของคุณจะไม่สามารถโหลดได้ ในเบราว์เซอร์ของคุณคุณอาจเห็นข้อผิดพลาด 502.5 และหากคุณดูบันทึกเหตุการณ์ของเซิร์ฟเวอร์คุณอาจเห็นรหัสข้อผิดพลาด 0x80004005 หากคุณพยายามเรียกใช้ dotnet.exe จากพรอมต์คำสั่งเพื่อโหลด dll แอปพลิเคชันหลักของ asp.net บนเซิร์ฟเวอร์นั้นคุณอาจเห็นข้อผิดพลาดเช่น "BadImageFormatException" หรือ "

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <location path="." inheritInChildApplications="false">
        <system.webServer>
            <handlers>
                <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
            </handlers>
            <aspNetCore processPath="C:\Program Files (x86)\dotnet\dotnet.exe" arguments=".\My32BitAspNetCoreApp.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
       </system.webServer>
   </location>
</configuration>

0

ฉันพบปัญหาเดียวกันและสาเหตุในกรณีของฉันคือคอร์ EF พยายามอ่านสตริงการเชื่อมต่อจากappsettings.development.jsonไฟล์ ฉันเปิดมันและพบว่ามีการแสดงความคิดเห็นสตริงการเชื่อมต่อ

//{
//  "ConnectionStrings": {
//    "DefaultConnection": "Server=vaio;Database=Goldentaurus;Trusted_Connection=True;",
//    "IdentityConnection": "Server=vaio;Database=GTIdentity;Trusted_Connection=True;"
//  }
//}

จากนั้นฉันก็ไม่ได้ผูกมัดพวกเขาเช่นด้านล่างและปัญหาได้รับการแก้ไข:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=vaio;Database=Goldentaurus;Trusted_Connection=True;",
    "IdentityConnection": "Server=vaio;Database=GTIdentity;Trusted_Connection=True;"
  }
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.