“ เพจที่คุณร้องขอไม่สามารถแสดงได้เนื่องจากการกำหนดค่าส่วนขยาย” ข้อความผิดพลาด


272

ฉันได้รับข้อความแสดงข้อผิดพลาดนี้เมื่อพยายามเรียกใช้แอปพลิเคชันของฉัน ฉันไม่รู้วิธีแก้ไข:

HTTP Error 404.3 - ไม่พบเพจที่คุณร้องขอไม่สามารถแสดงได้เนื่องจากการกำหนดค่าส่วนขยาย หากหน้านั้นเป็นสคริปต์ให้เพิ่มตัวจัดการ หากควรดาวน์โหลดไฟล์ให้เพิ่มแผนที่ MIME

นี่คือภาพหน้าจอของหน้าข้อผิดพลาด: ข้อความแสดงแทน

ฉันจะแก้ไขข้อผิดพลาดนี้ได้อย่างไร


1
ซอร์สโค้ดจะมีประโยชน์มากกว่าหน้าเพจข้อผิดพลาด
gsharp

1
คุณต้องการเห็นส่วนใดของซอร์สโค้ด

1
หลังจากทำตามคำแนะนำข้างต้นแล้วถ้าคุณได้รับข้อผิดพลาดเดียวกันให้ทำตามลิงค์ด้านล่างและทำตามขั้นตอนคลิกที่นี่
ราชา

คำตอบ:


170

ใช้aspnet_regiis.exeเพื่อลงทะเบียน. NET Framework ที่คุณใช้

นี่เป็นปัญหาทั่วไปและเกิดขึ้นเมื่อติดตั้ง IIS หลังจาก VS หรือ. NET Framework

หมายเหตุ - สำหรับ Windows 8/10 ผู้ใช้ดูคำตอบอื่น ๆ โดย JohnOpincar ด้านล่าง และความคิดเห็น / เคล็ดลับจาก Kevin Brydon


11
ตามความเป็นจริงฉันติดตั้ง Visual Studio ก่อนแล้วตามด้วย IIS ฉันกำลังใช้คำสั่ง "aspnet_regiis.exe -i" หวังว่านี่จะช่วยแก้ไขข้อผิดพลาด

5
ทำงานสำหรับฉันเช่นกันเมื่อฉันได้รับข้อผิดพลาดนี้เมื่อพยายามเข้าถึงบริการ. svc WCF
atconway

หมายเหตุ - สำหรับผู้ใช้ Windows 8 ดูคำตอบอื่น ๆ ของ JohnOpincar ด้านล่าง
KyleK

+1 สำหรับผู้อื่นที่ค้นหาสิ่งนี้ผ่านการค้นหาคุณอาจพบว่าง่ายต่อการซ่อมแซมในการติดตั้ง. NET แทนที่จะพยายามเรียกใช้ aspnet_regiis.exe เป็นเส้นทางที่มีความต้านทานน้อยที่สุดและแก้ไขปัญหาได้ เราเห็นสิ่งนี้มากมายในกล่องที่ติดตั้ง. NET 4.5.2 (ผ่านทาง Windows Update) ก่อนที่จะติดตั้งบทบาท IIS มันค่อนข้างน่าผิดหวังเพราะกล่องเหล่านี้จะแสดง. NET 4 เป็นตัวเลือกในกลุ่มแอพของพวกเขา แต่ หากแอปพลิเคชันของคุณต้องการ. NET 4.5 เหมือนของเรามันจะล้มเหลวพร้อมกับข้อความข้างต้น
aolszowka

246

ใน Windows 8/10 คุณต้องใช้

  • เปิดแผงควบคุม→
  • โปรแกรมและคุณสมบัติ→
  • เปิดหรือปิดคุณสมบัติ Windows →
  • บริการข้อมูลทางอินเทอร์เน็ต (IIS) →
  • บริการเวิลด์ไวด์เว็บ→
  • คุณสมบัติการพัฒนาแอพพลิเคชั่น→
  • ตรวจสอบรายการที่เหมาะสมเช่นการเปิดใช้งาน ASP.NET (เช่นติดตั้งรุ่นที่เหมาะสมที่คุณต้องการกำหนดค่าเว็บไซต์ด้วย)

การอ้างอิง: ตรวจสอบวิธีแก้ปัญหาของคำถามนี้เพื่อการอ้างอิง


217
ฉันได้ไปตรวจสอบ.NET Framework 4.5 Advanced Services> WCF Services>HTTP Activation
เควิน Brydon

13
เรียกใช้คำสั่งนี้จากพรอมต์คำสั่งของผู้ดูแลระบบ: "dism / Online / Enable-Feature / FeatureName: WCF-HTTP-Activation / all" หรือ "dism / Online / Enable-Feature / FeatureName: WCF-HTTP-Activation45 / all"
พอลซัวร์

เมื่อฉันคุ้นเคยกับการเรียกใช้ regiis ไมโครซอฟท์ก็ไปเปลี่ยนมันอีกครั้ง อย่างน้อยก็ง่ายกว่า - การเปลี่ยนแปลงคล้ายกับการติดตั้ง WIF ตอนนี้พวกเขาควรเพิ่ม SQL เพื่อเปิด / ปิดคุณสมบัติ Windows
nocarrier

@KevinBrydon - ขอบคุณมาก! เคล็ดลับของคุณเป็นประโยชน์อย่างมากในการแก้ไขปัญหาใน Windows 2012 R2
Amil Waduwawara

ใน Windows Server 2012 R2 การเปิดใช้งาน "การเปิดใช้งาน Http" ใช้งานได้สำหรับฉัน
Dhanuka777

117

ฉันแก้ไขที่ใน Windows 10 ของฉัน:

  1. ไปที่แผงควบคุม - โปรแกรมและคุณสมบัติ - เปิดหรือปิดคุณสมบัติ Windows

  2. เลือก. NET Framework 4.6 Advanced Services - WCF Services

  3. ตรวจสอบการเปิดใช้งาน HTTP

  4. ตกลงเสร็จแล้ว


5
ทำงานได้สำหรับฉันบน Windows 10! ขอบคุณ!
Sergey Malyutin

1
ใช้งานได้กับฉันในการชนะ 8.1 ด้วย
Qerts

ทำงานบน Win10 iis7
noCodeMonkeys

ทำงานได้หลังจากอัปเกรดเป็น Windows 1709 และต้องติดตั้ง IIS ใหม่อีกครั้ง
garrettendi

ทำงานได้อย่างสมบูรณ์แบบสำหรับฉันวิธีแก้ปัญหาที่ดีถ้าคุณได้รับเช่น "ข้อผิดพลาดนี้เกิดขึ้นเมื่อนามสกุลไฟล์ของ URL ที่ร้องขอนั้นเป็นประเภท MIME ที่ไม่ได้กำหนดค่าบนเซิร์ฟเวอร์"
eranda.del

84

ในกรณีของฉันฉันต้องเพิ่มประเภท MIME สำหรับแต่ละนามสกุลไฟล์ที่ฉันต้องการให้บริการกับเว็บ config:

<system.webServer>
    <staticContent>
      <mimeMap fileExtension=".shp" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".dbf" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".kml" mimeType="text/xml" />
    </staticContent>
    ...
</system.webServer>

2
1+ มันแก้ไขปัญหาของฉัน ... ฉันกำลังพยายามโหลด.jsonและฉันได้รับข้อผิดพลาด OP และในที่สุดฉันก็สิ้นสุดการเพิ่มmimeMapใน web.config ของฉันและแก้ไขปัญหา
Nick Kahn

ฉันต้องเพิ่มประเภท MIME สำหรับไฟล์ asmx ด้วยหรือไม่
Shilpa Soni

@ShilpaSoni ไฟล์ asmx เป็นไฟล์เซิร์ฟเวอร์ asp.net (ไม่ใช่เนื้อหาคงที่) ดังนั้นคุณจึงไม่สามารถและไม่จำเป็นต้องดาวน์โหลดจากไคลเอนต์
Mahmoodvcs

1
และนี่คือแผนที่ของนามสกุลไฟล์ไปยัง mimeType ที่เหมาะสมพบได้จากคำถาม SO นี้
The Red Pea

21

ในกรณีนี้จะช่วยให้ทุกคนฉันได้รับข้อผิดพลาดนี้เมื่อพยายามเรียกใช้ aspnet_regiis.exe:

การดำเนินการล้มเหลวด้วย 0x8007000B

มีความพยายามในการโหลดโปรแกรมด้วยรูปแบบที่ไม่ถูกต้อง

ตามที่ปรากฏเซิร์ฟเวอร์กำลังเรียกใช้ 2008 64 บิตและฉันพยายามเรียกใช้ยูทิลิตี้รุ่น 32 บิต ใช้รุ่นที่พบใน \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 แก้ไขปัญหา

c:\Windows\Microsoft.NET\Framework64\v2.0.50727>aspnet_regiis.exe -i

7

ฉันเพิ่งมีสถานการณ์เดียวกันกับลูกค้าของฉัน เรามีผลิตภัณฑ์ของเราเองซึ่งติดตั้งเว็บไซต์ โปรแกรมติดตั้งกำหนดค่าทุกอย่าง: พูล IIS, ไซต์, web.config เป็นต้น

เราติดตั้งเว็บไซต์อื่นโดยใช้เครื่องมือติดตั้งของเรา เราป้อนพารามิเตอร์เดียวกันดังนั้น web.configs จึงเหมือนกันทั้งสองไซต์

อย่างไรก็ตามไซต์ที่เพิ่งติดตั้งทำงานได้ดีในขณะที่ไซต์เก่าไม่ทำงาน จากนั้นฉันเปิดหน้าต่างตัวจัดการ IIS 2 หน้าต่างและเริ่มเปรียบเทียบความแตกต่างในการตั้งค่าเว็บไซต์ และฉันพบปัญหา

ใครบางคนลบการแมปตัวจัดการทั้งหมดด้วยไซต์เก่า หากคุณไปที่ "ตัวจัดการการแมป" คุณจะเห็นว่ามี aspx, asmx และส่วนขยายอื่น ๆ และชื่อของตัวจัดการ ดังนั้นในเว็บไซต์เก่าบันทึกทั้งหมดเหล่านั้นหายไป

ดังนั้นฉันขอแนะนำก่อนเพื่อตรวจสอบ "ตัวจัดการการแมป" - ต้องมีจำนวนมากที่นั่น สร้างเว็บไซต์ใหม่และเปรียบเทียบเพื่อดูว่าควรมีจำนวนเท่าใด

ใครลบพวกเขาบุคคลหรือโปรแกรมอื่นฉันไม่มีความคิด หากใครบางคนสามารถบอกได้ว่ามีแอปพลิเคชันการติดตามอยู่บ้างซึ่งจะบอกว่าโดเมนผู้ใช้ \ john กำลังแก้ไขเว็บไซต์ในวันที่ "07.03.2012 12:34" ซึ่งจะมีประโยชน์


มันอาจเป็นการปรับปรุงความปลอดภัยของ Microsoftหรือไม่
Roman Starkov

6

ฉันแก้ไขปัญหาของฉันบนเซิร์ฟเวอร์ Windows 2012 โดยการติดตั้งคุณลักษณะ WCF ทั้งหมด

A) ตัวจัดการเซิร์ฟเวอร์> จัดการ [ลิงค์ด้านซ้ายบน]> เพิ่มบทบาทและคุณสมบัติ

B) ในคุณสมบัติ> .Net Framework 4.5 คุณลักษณะ> บริการ WCF

C) ตรวจสอบ (เปิดใช้งาน) คุณสมบัติ ฉันตรวจสอบทั้งหมด

D) ติดตั้ง


2
ฉันตรวจสอบเฉพาะการเปิดใช้งาน HTTP และการเปิดใช้งาน TCP และทำงานได้สำหรับฉัน ขอบคุณอยู่ดี!
Aleksei Mialkin

6

ใช้ Windows Server 2008 R2 64 บิตและ. net framework 4.5 เรียกใช้คำสั่งนี้จากตำแหน่งนี้และประสบความสำเร็จ:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -i

เอาท์พุท:

Microsoft (R) ASP.NET RegIIS version 4.0.30319.0
Administration utility to install and uninstall ASP.NET on the local machine.
Copyright (C) Microsoft Corporation.  All rights reserved.
Start installing ASP.NET (4.0.30319.0).
.....
Finished installing ASP.NET (4.0.30319.0).

3

@Mahmoodvcs ที่กล่าวถึงฉันจำเป็นต้องตั้งค่า / เพิ่มประเภท MIME สำหรับนามสกุลไฟล์ที่ฉันต้องการให้โฮสต์ / ดาวน์โหลดโดยตรงในกรณีนี้คือไฟล์การถ่ายโอนข้อมูลของ Heroku (การสำรองฐานข้อมูลของ postgres) ดังนั้นเพื่อตั้งค่าเซิร์ฟเวอร์ IIS สาธารณะที่ คุณสามารถดาวน์โหลดไฟล์นี้โดยไม่ต้องใช้ AWS S3 bucket หรือ HTTP share อย่างดรอปบ็อกซ์นี่เป็นตัวเลือกที่ยอดเยี่ยม!

<staticContent>
  <mimeMap fileExtension=".dump" mimeType="application/octet-stream" />
</staticContent>


2

อย่างไรก็ตามฉันเพิ่งพบโพสต์นี้: http://blogs.msdn.com/b/webtopics/archive/2010/03/19/iis-7-5-how-to-enable-iis-configuration -auditing.aspx มันอธิบายวิธีการตรวจสอบการเปลี่ยนแปลงใน IIS สำหรับผู้ที่ประสบปัญหาคล้ายกันฉันแนะนำให้เปิดการตรวจสอบและดูภายหลังว่าทำไมไซต์ของคุณหยุดทำงาน


2

ฉันก็มีข้อผิดพลาดนี้เช่นกันใน Windows Server 2008 IIS 7 ฉันไม่มี visual studio ติดตั้งดังนั้นการติดตั้ง / ซ่อมแซม. NET 4.0 จึงเป็นการหลอกลวง


1

ในการเพิ่มส่วนขยายที่ให้บริการใน IIS มีดังนี้ -

  1. เปิดตัวจัดการ IIS และไปยังระดับที่คุณต้องการจัดการ
  2. ในมุมมองคุณลักษณะดับเบิลคลิกประเภท MIME
  3. ในบานหน้าต่างการกระทำให้คลิกเพิ่ม
  4. ในกล่องโต้ตอบเพิ่มชนิด MIME ให้พิมพ์นามสกุลไฟล์ในกล่องข้อความส่วนขยายชื่อไฟล์ ... พิมพ์ประเภท MIME
  5. ในกล่องข้อความประเภท MIME
  6. คลิกตกลง

1
ฉันทดสอบวิธีแก้ปัญหานี้ในกรณีของ. ts (ไฟล์สคริปต์ประเภท) คุณต้องประกาศในฟิลด์ MIME Type typescript (.ts) ฉันใช้ text / x.typescript เป็นประเภท mime
freedeveloper


0

ตรวจสอบว่ามีการเลือกกลุ่มแอปพลิเคชันใน IIS (ในกรณีของ IIS7 หรือสูงกว่า) เป็นแบบรวม ในกรณีนี้การเปลี่ยนเป็น Classic สามารถแก้ปัญหานี้ได้


0

เกี่ยวข้องกับ Server 2016 ฉันควรเพิ่ม:

  1. เรียกใช้คำสั่งนี้: aspnet_regiis -lvจาก dir นี้: C:\Windows\Microsoft.NET\Framework\v2.0.50727\ ซึ่งจะช่วยให้คุณมีมุมมองที่ดีที่สุดของสิ่งที่เกิดขึ้น

  2. บนเซิร์ฟเวอร์ 2016 การติดตั้ง. net และ iis ไม่เป็นไปตามลำดับดูเหมือนจะไม่มีปัญหา

  3. มีแนวโน้มที่จะเกิดปัญหาอะไรขึ้นกับ Server 2016 เพียงแค่ว่า asp.net ไม่ได้ติดตั้งไว้ในเครื่อง


0

สำหรับ Windows Server 2016

  1. เปิดServer Managerแบบฟอร์ม
  2. Manage -> Add Roles and Features
  3. ถัดไปจนกระทั่ง Featuresหน้า
  4. ตรวจสอบWCF Servicesคุณสมบัติพร้อมคุณสมบัติย่อยทั้งหมด
  5. Next และ Install

0

PHP 7.3 แอปพลิเคชัน IIS บน Windows Server 2012 R2

นี่เป็นกระบวนการสองขั้นตอนสำหรับฉัน

1) เปิดใช้งานบริการ WCF ด้วยการรีสตาร์ทเซิร์ฟเวอร์

2) เพิ่มการแม็พโมดูล FASTCGI

1)

ไปที่ตัวจัดการเซิร์ฟเวอร์> เพิ่มบทบาทและคุณสมบัติเลือกเซิร์ฟเวอร์ของคุณจากกลุ่มเซิร์ฟเวอร์ไปที่คุณสมบัติ> บริการ WCF ฉันเลือกทุกประเภทแล้วติดตั้ง

2)

ไปที่ IIS> เลือกไซต์ในบานหน้าต่างตรงกลางเลือกการแมปตัวจัดการบานหน้าต่างด้านขวามือเลือกเพิ่มการแมปโมดูล

ภายในหน้าต่างแก้ไข:

เส้นทางคำขอ: * .php

โมดูล: FastCgimodule

ปฏิบัติการ: ฉันเรียกดู php-cgi.exe ในโฟลเดอร์ PHP ของฉัน

ชื่อ: PHP7.3

ตอนนี้ฉันคิดแล้ว อาจมีวิธีเพิ่มการแมปตัวจัดการนี้ภายใน web-config ดังนั้นหากคุณย้ายไซต์ของคุณไปยังเซิร์ฟเวอร์อื่นคุณไม่จำเป็นต้องเพิ่มการแมปนี้ซ้ำไปซ้ำมา

แก้ไข: นี่มันคือ เพิ่มสิ่งนี้ไปยังส่วนของ web-config

<add name="PHP-FastCGI" verb="*" 
  path="*.php" 
  modules="FastCgiModule"
  scriptProcessor="c:\php\php-cgi.exe" 
  resourceType="Either" />


0

หากคุณพยายามที่จะดูไฟล์ที่ไม่มีนามสกุลสิ่งที่ใช้ได้ผลสำหรับฉันคือการเพิ่มMIME Type: นามสกุลไฟล์ชื่อ : . ประเภท MIME :text/plain

นี่อาจมีความหมาย MVC บางอย่างโดยเฉพาะอย่างยิ่งถ้าคุณStatic File Handlerอยู่เหนือตัวExtensionless...จัดการ (ใต้IIS/ Handler Mappings) แต่อาจเป็นการแก้ไขเมื่อคุณต้องการเพียงชั่วคราวเช่นการเปิดใช้งาน SSL Certs

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