ASP.NET: ข้อผิดพลาด HTTP 500.19 - ข้อผิดพลาดภายในเซิร์ฟเวอร์ 0x8007000d


116

HTTP Error 500.19ฉันกำลังจำลองการใช้งานโปรแกรมประยุกต์บนเว็บและพบว่าหลายประเด็นที่เกี่ยวข้องกับ เครื่องของฉันทำงานWindows 7ในขณะที่การพัฒนาในการทำงานคือการใช้Windows 8 เรากำลังพัฒนาแอพลิเคชันเว็บของเราโดยใช้Visual Studio 2010

ครั้งแรกที่ผมได้รับรหัสข้อผิดพลาด0x80070021คล้ายโพสต์ ที่นี่ ฉันอัปเดต web.config ตามคำตอบที่ยอมรับแล้วฉันได้รับรหัสข้อผิดพลาดต่อไปนี้ (ซึ่งคล้ายกับที่โพสต์ไว้ที่นี่ )

HTTP Error 500.19 - Internal Server Error
Error Code 0x8007000d
Config Source -1: 0:

ฉันได้อ่านคำจำกัดความของอาการในหน้าสนับสนุนของ Microsoftแล้วและสาเหตุของข้อผิดพลาดคือ:

ปัญหานี้เกิดขึ้นเนื่องจากไฟล์ ApplicationHost.config หรือไฟล์ Web.config มีองค์ประกอบ XML ที่ผิดรูปแบบ

และวิธีแก้ปัญหาคือ

ลบองค์ประกอบ XML ที่ผิดรูปแบบออกจากไฟล์ ApplicationHost.config หรือจากไฟล์ Web.config

อย่างไรก็ตาม web.config ที่ฉันใช้นั้นทำงานได้อย่างสมบูรณ์ในสภาพแวดล้อมการพัฒนาดั้งเดิม

นี่คือสิ่งที่ฉันได้ตรวจสอบและทดลองใช้แล้ว:

  1. ติดตั้ง ASP.NET โดยเรียก aspnet_regiis -i
  2. ตั้งค่าแอปพลิเคชันของฉันให้ใช้แอปพลิเคชันพูลอื่น (ASP.NET v4.0, .NET v4 ฯลฯ )
  3. ไฟล์ ApplicationHost.config ยังคงใช้ค่าเริ่มต้นจาก Windows 7

นี่เป็นส่วนหนึ่งของ Web.Config ของฉัน

<system.webServer>
    <section name="handlers" overrideModeDefault="Allow" /> 
    <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true">
    </modules>
    <handlers>
        <remove name="UrlRoutingHandler" />
        <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    </handlers>
    <urlCompression doStaticCompression="true" doDynamicCompression="false"></urlCompression>
    <directoryBrowse enabled="true" />
    <defaultDocument>
        <files>
            <add value="Logon.aspx" />
        </files>
    </defaultDocument>
</system.webServer>

ฉันได้อ่านโพสต์ที่คล้ายกัน / ซ้ำกัน / ปิด (ประมาณ 13) โพสต์ใน stackoverflow ลองทั้งหมดยกเว้นคำตอบที่เกี่ยวข้องกับ Ajax (เกี่ยวข้องหรือไม่) และยังไม่ทราบว่าข้อผิดพลาดคืออะไร

มีใครจะแก้ไขข้อผิดพลาดนี้ได้อย่างไร (และถ้าเป็นไปได้จำเป็นต้องตรวจสอบรายการทั้งหมดเพื่อให้เราสามารถลดโพสต์ที่คล้ายกันเช่นนี้ได้) ฉันพร้อมที่จะให้รายละเอียดเพิ่มเติม


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

คำตอบ:


273

ข้อผิดพลาด 0x8007000d หมายถึงโมดูลการเขียน URL ใหม่ (อ้างอิงใน web.config)หรือไม่ได้ติดตั้งเวอร์ชันที่เหมาะสม

เพียงติดตั้งโมดูลการเขียน URL ใหม่ผ่านโปรแกรมติดตั้งแพลตฟอร์มเว็บ

ฉันแนะนำให้ตรวจสอบการอ้างอิงทั้งหมดจาก web.config และติดตั้ง


23
ฉันหวังว่า IIS จะให้ข้อความแสดงข้อผิดพลาดที่อธิบายได้ชัดเจนยิ่งขึ้นหากมีข้อความว่า "Unrecognized module: UrlRewritingNet" ฉันจะประหยัดเวลาได้สองชั่วโมงในเช้าวันนี้ +1 เพื่อยุติความเจ็บปวดของฉัน :)
AlexFoxGill

17
ขอบคุณ. เพิ่ม"Url Rewrite 2.0"ผ่านโปรแกรมติดตั้งแพลตฟอร์มเว็บแล้วแก้ไข
Cihan Yakar

มีปัญหาเดียวกันใช้เวลาหลายปีในการดูไฟล์ XML ที่ "เสียหาย" จนกระทั่งฉันสะดุดกับความคิดเห็นนี้ที่กล่าวถึงโมดูลการเขียน URL ใหม่ นั่นเพียงพอที่จะกระตุ้นความจำของฉันเกี่ยวกับการแก้ปัญหาเดียวกันนี้เมื่อไม่กี่เดือนก่อน! (ฉันจะเขียนมันลงในครั้งนี้) ขอบคุณ!
anton

4
ดีแม้ Web Platform ยังบอกว่า "ติดตั้ง" แล้วอย่างไรก็ตามมันไม่แสดงใน IIS ฉันไปที่นี่iis.net/downloads/microsoft/url-rewriteดาวน์โหลดเวอร์ชันที่เหมาะสมลบเวอร์ชันปัจจุบันและใหม่ ติดตั้งปิด IIS และรีสตาร์ท IIS ตอนนี้ฉันสามารถเห็น "URL Rewrite"
Box Very

ขอบคุณมาก. คำตอบนี้ช่วยวันของฉัน ฉันติดตั้ง 'การเขียน URL ใหม่' ผ่านโปรแกรมติดตั้งแพลตฟอร์มเว็บบน IIS 10 เซิร์ฟเวอร์ windows 2016 และข้อผิดพลาดหายไป
Anil Gupta

34

เมื่อพยายามตั้งค่าไฟล์ . NET Core 1.0ฉันได้รับข้อผิดพลาดนี้และลองทำทุกอย่างที่พบโดยไม่มีโชครวมถึงการตรวจสอบไฟล์ web.config, สิทธิ์ IIS_IUSRS, โมดูลการเขียน URL ของ IIS เป็นต้นในท้ายที่สุดฉัน ติดตั้งDotNetCore.1.0.0-WindowsHosting.exeจากหน้านี้: https://www.microsoft.com/net/downloadและเริ่มทำงานทันที

ลิงก์เฉพาะสำหรับดาวน์โหลด: https://go.microsoft.com/fwlink/?LinkId=817246


4
ขอบคุณ! นี่คือสิ่งที่ฉันต้องการสำหรับแอปพลิเคชันหลักของฉัน ผู้ที่ต้องการทราบวิธีการโฮสต์เว็บไซต์หลักใน iis สามารถเข้าไปที่docs.microsoft.com/en-us/aspnet/core/publishing/iis
muhihsan

1
นี่คือสำหรับ Core ทุกเวอร์ชันไม่ใช่แค่ 1.0 (ต้องติดตั้ง Core บนเซิร์ฟเวอร์)
Patrick

1
นั่นได้ผลสำหรับฉันหลังจากลองทำอย่างอื่นแล้ว ขอบคุณ.
Andrew

เพื่อรับเวอร์ชันล่าสุดคุณสามารถไปที่นี่docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/…
Leonard AB

1
ขอบคุณสำหรับสิ่งนี้ฉันสามารถทำให้มันใช้งานได้โดยเรียกใช้การซ่อมแซมการติดตั้ง DotNetCore ของฉัน
เชน

21

ในกรณีของฉันเนื่องจากฉันติดตั้ง iis ใหม่ฉันจำเป็นต้องลงทะเบียน iis ด้วย dot net 4 โดยใช้คำสั่งนี้:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

21

ติดตั้งการเขียน URL ใหม่:

อัปเดต - พร้อมใช้งานแล้วที่นี่ (และใช้ได้กับ IIS 7-10):

https://www.iis.net/downloads/microsoft/url-rewrite

ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าต่อไปนี้เป็น 'อนุญาต' สำหรับเซิร์ฟเวอร์ IIS ของคุณ:

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


ขอบคุณสำหรับลิงค์! ฉันติดตั้งสิ่งนี้จากคุณสมบัติเพิ่ม / ลบ แต่ไม่สามารถแก้ไขได้ การดาวน์โหลดจากลิงค์นั้นเท่านั้นที่ใช้งานได้
ลุค

5

สายไปปาร์ตี้ที่นี่ แต่ฉันเพิ่งดิ้นรนกับปัญหาเดียวกัน (อาการ) และสาปแช่งการขาดการรายงานรายละเอียดข้อผิดพลาด ทำงานได้ดีบนเครื่อง IIS 8+ แต่ Win 7 ได้รับข้อผิดพลาดทันที HTTP 500.19 เหล่านี้ สำหรับฉันมันโง่พอ ๆ กับการมีองค์ประกอบการกำหนดค่าที่ไม่รองรับในไฟล์กำหนดค่า:

 <applicationInitialization doAppInitAfterRestart="true">
  <add initializationPage="/" />
</applicationInitialization>

ดังนั้นในขณะที่เรียกใช้ไฟล์ web.config เก่า ๆ ใช้งานได้ดีฉันก็แค่ปรับเปลี่ยนไฟล์เหล่านั้นและเริ่มสับบล็อกใหม่จนกว่าฉันจะเริ่มโหลดหน้า หากฉันเห็นว่านี่เป็นคำตอบฉันจะไปเส้นทางนี้ทันทีเพราะฉันรู้ว่าไม่มีวิธีแก้ปัญหายอดนิยมใดที่เกี่ยวข้อง เอาล่ะ :)


นี่คือปัญหาของฉัน ขอบคุณ!
Erik W

ฉันยังมีปัญหานี้ ขอบคุณ!
JoséMargaça Lopes

4

ในกรณีของฉัน (.Net Core Web API) สำหรับปัญหานี้ HTTP Error 500.19 - Internal Server Error 0x8007000d

ดาวน์โหลด dotnet-hosting-3.0.0-preview5-19227-01-win (.Net Core 3) หรือ dotnetcore 2 hasting windows ก่อน

https://download.visualstudio.microsoft.com/download/pr/5bed16f2-fd1a-4027-bee3-3d6a1b5844cc/dd22ca2820fadb57fd5378e1763d27cd/dotnet-hosting-3.1.4-win.exe

แอปพลิเคชัน. net core 3.1 ใด ๆ ไม่ว่าจะเป็นแอปพลิเคชันเชิงมุมหรือ mvc ก็ต้องการสิ่งนี้

ประการที่สองให้ติดตั้งเป็น Administrator เปิด cmd ในฐานะผู้ดูแลระบบพิมพ์ iisreset กด Enter

ดังนั้นรีเฟรชแอป localhost ของคุณ

MMTofighi ที่ดีที่สุดจากอิหร่าน


1

แก้ไขปัญหา. นี่คือขั้นตอนที่ฉันลอง:

  • เปิดใช้งานแอปพลิเคชัน 32 บิตใน IIS -> พูลแอปพลิเคชัน -> การตั้งค่าขั้นสูง
  • คัดลอก System.EnterpriseServices.dll และ System.EnterpriseServices.Wrapper.dll จาก C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 ไปยังโฟลเดอร์ bin ของแอปพลิเคชัน
  • แสดงความคิดเห็น / ไม่แสดงความคิดเห็นในส่วนต่างๆบน web.config และพบว่าปัญหาที่เกี่ยวข้องกับ DLL ที่อ้างถึง

การกำหนดค่าที่ฉันแสดงความคิดเห็นก่อนหน้านี้ที่ฉันเพิ่ม:

<section name="handlers" overrideModeDefault="Allow" /> 
<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow"/>
  • เพิ่ม FasterFlect.DLL ที่จำเป็นซึ่งใช้โดย Combres.DLL v2.1.0.0 ไปยังโฟลเดอร์ bin ของแอปพลิเคชัน (จะต้องดาวน์โหลดไฟล์ zip แบบเต็มจาก Combres codeplex เนื่องจากไม่พบ DLL V2.0.3732.24338 ที่เร็วกว่าที่ต้องการในการเลือกเร็วกว่า) และอื่น ๆ DLL เพื่อความสะดวกสบายให้ใช้ Combres.DLL แบบเต็ม (1,3MB)
  • ตรวจสอบว่าเวอร์ชัน DLL และโทเค็นคีย์สาธารณะได้รับการกำหนดค่าอย่างถูกต้องใน web.config โดยใช้เครื่องมือเช่น. NET Reflector

1

ฉันเข้าใจว่าข้อผิดพลาดนี้อาจเกิดขึ้นได้จากหลายสาเหตุ ในกรณีของฉันเป็นเพราะฉันถอนการติดตั้งบริการ WSUS จาก Server Roles และ IIS ทั้งหมดก็หยุดทำงาน หลังจากทำการวิจัยเล็กน้อยฉันพบว่าการถอนการติดตั้ง WSUS จะลบ dll สองสามตัวที่ใช้ในการบีบอัด http เนื่องจาก dll เหล่านั้นหายไปและ IIS ยังคงค้นหาอยู่ฉันจึงรีเซ็ตโดยใช้คำสั่งต่อไปนี้ใน CMD:

appcmd set config -section:system.webServer/httpCompression /-[name='xpress']

บิงโก! ปัญหาถูกจัดเรียงในขณะนี้ อย่าลืมเรียกใช้ในฐานะผู้ดูแลระบบ คุณอาจต้องทำ "iisreset" ด้วย ในกรณี

หวังว่ามันจะช่วยคนอื่น ๆ ไชโย


1

ฉันเปิด. Net Framework 3.5 และ 4.5 ​​Advance Service ในControl Panel-> Programs and Features-> มันTurn Windows features on or offใช้ได้สำหรับฉัน



0

ฉันมีปัญหากับบริการเว็บใหม่ล่าสุด แก้ไขได้โดยเพิ่มการเข้าถึงแบบอ่านอย่างเดียวสำหรับทุกคนใน Properties-> ความปลอดภัยสำหรับโฟลเดอร์ที่มีบริการอยู่



-1

สำหรับฉันแล้วการตั้งค่าเว็บเซิร์ฟเวอร์ของฉันให้ใช้เทคโนโลยีล่าสุดและดีที่สุดเพื่อรองรับแอปพลิเคชัน ASP.NET 5 ของฉัน!

URL ต่อไปนี้ให้คำแนะนำทั้งหมดที่ฉันต้องการ:

https://docs.asp.net/th/1.0.0-rc1/publishing/iis-with-msdeploy.html

หวังว่านี่จะช่วยได้ :)


2
คุณสามารถอธิบายประเด็นสำคัญบางประการในลิงก์ได้หรือไม่ วิธีนี้คำตอบจะยังคงมีประโยชน์หากลิงก์เสียหรือไม่พร้อมใช้งาน
mhatch
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.