นี่คือการผลักดันทั้งทีมให้บ้าคลั่ง จะต้องมีส่วนกำหนดค่าผิดพลาดอย่างง่าย ๆ ของ IIS หรือเว็บเซิร์ฟเวอร์ของเรา แต่ทุกครั้งที่เราพยายามเรียกใช้ ASP.NET Web Application บน IIS 7.5 เราจะได้รับข้อผิดพลาดดังต่อไปนี้ ...
นี่คือข้อผิดพลาดเต็ม:
HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration
data for the page is invalid.
`Detailed Error Information`
Module IIS Web Core
Notification Unknown
Handler Not yet determined
Error Code 0x8007000d
Config Error
Config File \\?\E:\wwwroot\web.config
Requested URL http://localhost:80/Default.aspx
Physical Path
Logon Method Not yet determined
Logon User Not yet determined
Config Source
-1:
0:
เครื่องจะทำงานWindows Server 2008 R2 เรากำลังพัฒนาแอพลิเคชันเว็บของเราโดยใช้Visual Studio 2008
ตาม Microsoft รหัส 8007000d หมายความว่ามีข้อผิดพลาดทางไวยากรณ์ใน web.config ของเรา - ยกเว้นโครงการสร้างและทำงานได้ดีในท้องถิ่น การดู web.config ใน XML Notepad จะไม่ทำให้เกิดข้อผิดพลาดทางไวยากรณ์เช่นกัน ฉันสมมติว่ามันต้องมีการปรับแต่งที่ไม่ดีในส่วนของฉัน ... ?
ไม่มีใครรู้ว่าฉันอาจหาข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดได้ที่ไหน ไม่มีอะไรแสดงใน EventViewer เช่น :(
ไม่แน่ใจว่าจะมีประโยชน์อะไรที่จะพูดถึง ...
ความช่วยเหลือชื่นชมอย่างมาก ขอบคุณ!
ปรับปรุง! - เว็บโพสต์ CONFIG ด้านล่าง
ตกลงตั้งแต่ฉันโพสต์คำถามต้นฉบับด้านบนฉันได้ติดตามบรรทัดที่แม่นยำในweb.configที่ทำให้เกิดข้อผิดพลาด
นี่คือบรรทัด (ปรากฏขึ้นระหว่าง<System.webServer>
แท็ก) ...
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
</httpHandlers>
หมายเหตุ: หากฉันลบเส้นระหว่าง<httpHandlers>
ฉันยังคงได้รับข้อผิดพลาด ฉันต้องลบ<httpHandlers>
(และเส้นตรง) เพื่อหยุดรับข้อผิดพลาดด้านบน
เมื่อฉันทำสิ่งนี้เสร็จฉันจะได้รับข้อผิดพลาด 500.19 ใหม่ โชคดีที่เวลานี้ IIS แจ้งให้ฉันทราบว่าบิตของ web.config ก่อให้เกิดปัญหา ...
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
</handlers>
เมื่อดูที่บรรทัดเหล่านี้จะเห็นได้ชัดว่าปัญหาได้ถูกโยกย้ายเพิ่มเติมภายใน<system.webServer>
แท็กเดียวกันกับ<handlers>
แท็ก
ข้อผิดพลาดใหม่นั้นมีความชัดเจนมากขึ้นและบ่นโดยเฉพาะว่ามันไม่รู้จักแอตทริบิวต์ "ตรวจสอบ" (ดังที่เห็นในบรรทัดที่สามด้านบน) การลบแอททริบิวนี้ทำให้บ่นว่าบรรทัดเดียวกันไม่มีแอททริบิวต์ "name" ที่จำเป็น การเพิ่มคุณสมบัตินี้จะทำให้เกิดข้อผิดพลาดASP.NET ...
ไม่สามารถโหลดไฟล์หรือชุดประกอบ 'System.web.Extensions, รุ่น = 1.0.61025.0, วัฒนธรรม = เป็นกลาง, PublicKeyToken = f2cb5667dc123a56' หรือการอ้างอิงอย่างใดอย่างหนึ่ง ระบบไม่พบแฟ้มที่ระบุ.
เห็นได้ชัดว่าฉันคิดว่าข้อผิดพลาดใหม่เหล่านี้เพิ่งเกิดขึ้นจากฉันลบ<httpHandlers>
แท็กในตอนแรก - พวกเขาต้องการแอปพลิเคชันอย่างเห็นได้ชัดดังนั้นคำถามยังคงอยู่: ทำไมแท็กเหล่านี้จะเกิดข้อผิดพลาดใน IIS ตั้งแต่แรก ??
ฉันจำเป็นต้องติดตั้งบางอย่างใน IIS เพื่อให้ทำงานได้หรือไม่
ขอบคุณอีกครั้งสำหรับความช่วยเหลือ
web.config
นี่คือบิตของปัญหาบนเว็บของเรากำหนดค่า ... ฉันหวังว่านี่จะช่วยให้บางคนพบปัญหาของเรา!
<system.Web>
<!-- stuff cut out -->
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
</httpModules>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
</modules>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
</handlers>
</system.webServer>
web.config
ลบความคิดเห็นทั้งหมดใน พวกเขาเริ่มต้นด้วยและจบลงด้วยการ<!--
-->