ASP.NET MVC บน IIS 7.5


338

ฉันใช้ Windows 7 Ultimate (64 บิต) โดยใช้ Visual Studio 2010 RC ฉันเพิ่งตัดสินใจที่จะมี VS run / debug แอปของฉันบน IIS แทนที่จะเป็นเซิร์ฟเวอร์ dev ที่มาพร้อมกับมัน

อย่างไรก็ตามทุกครั้งที่ฉันพยายามเรียกใช้แอป MVC ฉันได้รับข้อผิดพลาดต่อไปนี้:

HTTP Error 403.14 - ถูกห้ามเว็บเซิร์ฟเวอร์ได้รับการกำหนดค่าให้ไม่แสดงรายการเนื้อหาของไดเรกทอรีนี้ รายละเอียด

ข้อมูลผิดพลาด

โมดูล DirectoryListingModule

การแจ้งเตือน ExecuteRequestHandler

ตัวจัดการข้อผิดพลาด StaticFile

รหัส 0x00000000 ร้องขอ

URL http: // localhost: 80 / mySite /

เส้นทางกายภาพ C: \ myProject \ mySite \

วิธีการเข้าสู่ระบบ

ผู้ใช้นิรนาม

ฉันวางdefault.aspxไฟล์ไว้ในไดเรกทอรีและฉันได้รับข้อผิดพลาดดังต่อไปนี้:

HTTP Error 500.21 - ตัวจัดการข้อผิดพลาดเซิร์ฟเวอร์ภายใน "PageHandlerFactory-Integrated" มีโมดูล "ManagedPipelineHandler" โมดูลที่ไม่ดีในรายการโมดูล

มีขั้นตอนอื่นใดอีกที่ฉันลืมทำ

หมายเหตุ: ฉันติดตั้ง IIS 7.5 หลังจากติดตั้ง VS 2010 RC ฉันใช้ปุ่ม "สร้างไดเรกทอรีเสมือน" ในตัวภายใต้แท็บ "เว็บ" ใน "คุณสมบัติ" ของโครงการ MVC ใน Visual Studio 2010 ฉันแน่ใจว่าแอปพลิเคชันนั้นใช้พูลแอพ ASP.NET 4

ด้านล่างนี้เป็นฟีเจอร์การติดตั้งของ IIS ที่ฉันมี

ข้อความแสดงแทน


โอเคฉันมีปัญหาที่คล้ายกันและจะปรากฏเฉพาะกับเว็บไซต์ ASP.NET MVC 3 เว็บไซต์ ASP.NET MVC 2 ทำงานได้ดี ฉันวางไฟล์ Default.aspx ไว้ในรูทของเว็บไซต์แล้วมันก็โอเคไม่เป็นปัญหา ฉันได้ทำการติดตั้งเว็บไซต์ ASP.NET MVC 3 โดยใช้ VS2010 SP1 และยังไม่มีความสุข ฉันอยู่ที่ปลายปัญญาของฉันด้วยสิ่งนี้
Umar Farooq Khawaja

5
ฉันมีปัญหาเดียวกันนี้ ฉันได้ตั้งค่าแอปพลิเคชันให้ใช้ 4.0 แบบรวมแล้วรันคำสั่งการลงทะเบียนเพื่อลงทะเบียน. NET ด้วย IIS (7.5) และยังคงได้รับข้อผิดพลาดนี้
Collin White

2
ในที่สุดฉันก็สามารถพบปัญหาในการตั้งค่าของฉันซึ่งฉันได้เปลี่ยนชื่อไฟล์_Layout.cshtmlเป็น_PageLayout.cshtmlและได้ทำการเปลี่ยนแปลงที่สอดคล้อง_ViewStart.cshtmlเช่นกัน แต่เห็นได้ชัดว่าไม่เพียงพอ เมื่อฉันเปลี่ยนชื่อกลับเป็นชื่อ_Layout.cshtmlมันก็เริ่มทำงาน สิ่งที่ทำให้เกิดความสับสนก็_PageLayout.cshtmlคือการเลือกอย่างถูกต้องใน Win7 32 บิต แต่ไม่ได้รับใน Win7 64 บิตหรือ WinSvr2K8 R2
Umar Farooq Khawaja

3
มีใครพบวิธีแก้ปัญหานี้ใน Windows 8 ด้วย IIS 8 หรือไม่?
Eric Z Beard

3
หากคุณใช้ Windows Server 2012 หรือหน้าต่าง 8 ให้ดู: [ stackoverflow.com/questions/12134713/ … [1]: stackoverflow.com/questions/12134713/…
โลมัก

คำตอบ:


499

ASP.NET 4 ไม่ได้ลงทะเบียนใน IIS ต้องเรียกใช้คำสั่งต่อไปในบรรทัดคำสั่ง / เรียกใช้

32 บิต (x86) Windows

% windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir

64 บิต (x64) Windows

% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir

หมายเหตุจากความคิดเห็นของ David Murdoch:

ว่ารุ่น. net มีการเปลี่ยนแปลงตั้งแต่คำตอบนี้ถูกโพสต์ ตรวจสอบเวอร์ชันของเฟรมเวิร์กที่อยู่ในไดเร็กทอรี% windir% \ Microsoft.NET \ Framework64 และเปลี่ยนคำสั่งตามลำดับก่อนที่จะรัน (ปัจจุบันคือ v4.0.30319)


9
หมายเหตุ "64" ใน Framework64สำหรับ Windows 64 บิต! บิตนั้นใน * ss ฉันต้องติดตั้ง verion 32 บิต 4 หรือ 5 ครั้งโดยไม่มีผลกระทบ
เบ็นเลช

14
ว่ารุ่น. net มีการเปลี่ยนแปลงตั้งแต่คำตอบนี้ถูกโพสต์ ตรวจสอบเวอร์ชันของเฟรมเวิร์กที่อยู่ใน%windir%\Microsoft.NET\Framework64ไดเร็กทอรีและเปลี่ยนคำสั่งให้สอดคล้องกันก่อนรัน (ปัจจุบันคือ v4.0.30319)
David Murdoch

1
เพื่อเพิ่ม @blesh ถ้าคุณมี 64- บิตและเรียกใช้ aspnet_regiis.exe 32- บิตมันอาจจะแสดงตัวเลือกให้คุณอีกครั้งและไม่ต้องทำอะไรเลย
xster

3
หากคำสั่ง aspnet_regiis.exe หายไปจากโฟลเดอร์. NET Framework ให้ดาวน์โหลดตัวติดตั้ง Framework. net แบบเต็มmicrosoft.com/download/en/…
warrickh

11
ไม่สามารถใช้งานได้ใน IIS8 btw หากคุณลองใช้งาน "ตัวเลือกนี้ไม่รองรับระบบปฏิบัติการรุ่นนี้ผู้ดูแลระบบควรติดตั้ง / ถอนการติดตั้ง ASP.NET 4.5 ด้วย IIS8 โดยใช้" เปิด / ปิดคุณสมบัติ Windows " กล่องโต้ตอบเครื่องมือจัดการเซิร์ฟเวอร์ตัวจัดการหรือเครื่องมือบรรทัดคำสั่ง dism.exe สำหรับรายละเอียดเพิ่มเติมโปรดดูที่go.microsoft.com/fwlink/?LinkID=216771 "
Mastro

199

อีกสิ่งหนึ่งที่จะทำให้แน่ใจว่าคุณมีคือชุดต่อไปนี้ใน web.config ของคุณ:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer>

23
นั่นทำเพื่อฉัน ขอบคุณ
boca

5
ยังแก้ไขให้ฉันด้วย แปลกมันทำงานในเครื่องใน VS2010 IIS Express โดยไม่ต้องตั้งค่านั้น
ฟิล

8
หากคุณไม่ต้องการที่จะชุดrunAllManagedModulesForAllRequests(ซึ่งทำงานแม้สำหรับไฟล์คงที่) คุณสามารถติดตั้งโปรแกรมแก้ไขด่วนของ Microsoft: microsoft.com/download/en/...
Justin Helgerson

10
พยายามหลีกเลี่ยงสิ่งนี้โดยการเพิ่มโมดูลการกำหนดเส้นทาง: britishdeveloper.co.uk/2010/06/…
Chris Herring

หากคุณใช้ VS2013 และพยายามรันบน IIS 7.5 - คุณต้องเพิ่มสิ่งนี้
KenL

77

ตรวจสอบให้แน่ใจว่าคุณมีชุดต่อไปนี้ใน web.config ของคุณ:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer>

ทางออกที่ดีกว่า:

แม้ว่าวิธีการแก้ปัญหาข้างต้นจะทำงานได้ดีแต่ก็อาจทำให้เกิดปัญหาอื่น ๆ ตามที่เรียกใช้โมดูล HTTP ที่ลงทะเบียนทั้งหมดของคุณในทุกคำขอ (แม้แต่คำขอ. jpg .gif .css .html .pdf ฯลฯ ทุกครั้ง) และเห็นได้ชัดว่าเป็นการสิ้นเปลืองทรัพยากร แทน

<system.webServer>
<modules>
  <remove name="UrlRoutingModule-4.0"/>
  <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" preCondition="" />
</modules>
</system.webServer>

ตรวจสอบให้แน่ใจว่าแอตทริบิวต์ preCondition ว่างเปล่าหมายความว่ามันจะทำงานตามคำขอทั้งหมด [อ่านเพิ่มเติม] ( http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html , "อ่านโพสต์ต้นฉบับ")


6
สิ่งนี้แก้ไข 403.14 บนรูทและ 404 สำหรับวิธีควบคุมอื่น ๆ สำหรับแอพ MVC ของฉัน อย่างไรก็ตามยังมีบางสิ่งบางอย่างที่นี่เพราะฉันมีแอปอื่นที่ทำงานบนเซิร์ฟเวอร์เดียวกันที่มีการตั้งค่าไซต์ที่มองเห็นได้เหมือนกันและทำงานได้โดยไม่มีการตั้งค่านี้ นี่คือ web.config ที่สร้างโดยเทมเพลตโปรเจ็กต์ SPA ของ VS 2012 ทำงานได้ดีบนกล่องของฉัน แต่ไม่ใช่เมื่อเผยแพร่
แชนนอน

4
ใช่อุปกรณ์การพัฒนาของฉันมีอยู่<system.web><httpModules><add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" />ในWindows\Microsoft.NET\Framework64\v4.0.30319\Config\web.configและดูเหมือนจะได้รับการแก้ไขในวันที่ติดตั้ง VS 2012 ของฉัน ดังนั้นคำถามต่อไปคืออะไรในโครงการอื่นของฉันที่อนุญาตให้ทำงานได้
แชนนอน

โปรดทราบว่าไม่%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -irแนะนำโดยโซลูชันระดับสูงที่กำหนดค่าเริ่มต้นใด ๆ ที่จะต้องมีอยู่ในอุปกรณ์การพัฒนาของฉัน คำสั่งนั้นไม่สามารถแก้ปัญหาให้ฉันได้เมื่อฉันลบ UrlRoutingModule ออก
แชนนอน

ใช้งานได้กับ Windows Server 2008 R2 IIS 7 สำหรับ ASP.NET MVC 5 ขอบคุณ!
Ervi B

42

อีกสาเหตุที่บางคนอาจได้รับข้อผิดพลาดนี้คือไฟล์Global.asaxไม่ได้อยู่ในโฟลเดอร์รากอีกต่อไป


4
ใช่ - โปรแกรมติดตั้งที่ฉันเขียนไม่ได้นำไฟล์นี้มา ขอบคุณ!
zadam

4
นี่คือปัญหาของฉันด้วย ฉันไม่เคยเดาได้เลยว่าอาการของแอปพลิเคชันของฉันหายไปจาก Global.asax 403
Saul Dolgin

3
นอกจากนี้ยังคงมันสำหรับฉัน: ปิดก่อนสะสมในตัวเลือกการเผยแพร่ ( global.asaxเป็นเพียงไฟล์ได้รับผลกระทบ)
Richard

1
นี่เป็นการหลอกลวงสำหรับฉัน สิ่งนั้นคือสำหรับฉันและฉันได้ยินจากคนอื่น ๆ ทั่วโลก global.asax จะถูกสร้างขึ้นทุกครั้งที่ฉันตีพิมพ์ มีใครคิดวิธีการสร้างมันขึ้นมาทุกครั้งหรือไม่?
Greg Z.

ขอบคุณแก้ไขปัญหาของฉัน แอปพลิเคชันทำงานบน ASP.NET MVC 4.0, Framework 4.0 โฮสต์บน Arvixe
Joe King

20

ฉันยังได้รับข้อผิดพลาดนี้และพบว่า "HTTP Redirection" ไม่ได้เปิดใน Windows Server โพสต์บล็อกนี้ชี้ให้เห็นสิ่งนี้ด้วย: http://blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable-not-working-with-iis.aspx


6
ในทุกสิ่งที่น่าจะเป็นไปได้มันเป็นแบบนี้ ฉันดูทุกหนทุกแห่งและเล่นด้วยการตั้งค่าความปลอดภัยสองสามชั่วโมง aspnet_regiis และอีกต่อไป พระเยซูทารกหวานบนม้วนไกเซอร์ร่วน
Andrew Backer

ฉันใช้เวลาทั้งวันสำหรับเรื่องนี้ ขอบคุณมาก.
Pradeep

สำหรับ Windows 8 ฉันยังคงมีข้อผิดพลาดหลังจากเปิดใช้งาน HTTP Redirection ต้องทำเช่นนี้เป็นขั้นตอนที่สอง: เพิ่มบทบาท ASP.NET 4.5 ภายใต้ Internet Information Services -> World Wide Web Services -> คุณสมบัติการพัฒนาแอปพลิเคชันserverfault.com/questions/514091/…
dreamerkumar

จุดที่สองแก้ไขปัญหาของฉันได้ เครื่องจักรบางเครื่องใช้งานไม่ได้ แต่สิ่งอื่น ๆ เป็นสิ่งจำเป็น ขอบคุณ
Alexis Heijmeijer

15

Sweet Jesus ฉันลองทุกสิ่งข้างต้น (แต่พบว่าการตั้งค่าของฉันเหมือนกัน) ยังแก้ปัญหาอีกถ้าคุณมีปัญหา:

http://support.microsoft.com/kb/980368

ลองติดตั้ง KB นี้สำหรับระบบของคุณ หากคุณเห็น 404 วินาทีอาจเป็นเพราะคุณไม่มีอัปเดตนี้ - และโมดูล isapi ไม่ได้รับการค้นพบและไม่มีอะไรมากมายที่คุณสามารถทำได้หากไม่มีสิ่งนี้!


1
แก้ไขได้สำหรับฉันบนเซิร์ฟเวอร์ 32 บิตทำงาน Server 2008 SP2 (ไม่ R2)
ไซม่อน C


7

สำหรับฉันใน Azure Server 2012 R2 IIS 8.5 VM พร้อมแอพ Asp.Net MVC 5 (ถังที่ปรับใช้ MVC 5) ฉันต้องทำสิ่งต่อไปนี้จากพรอมต์คำสั่งยกระดับแม้ว่าฉันได้ติดตั้ง 4.5 แล้ว:

dism /online /enable-feature /featurename:IIS-ASPNET45

ที่มา: http://support.microsoft.com/kb/2736284

ฉันดุร้ายกำลังติดตั้งคุณลักษณะ IIS ทั้งหมดด้วย PowerShell ต่อไปนี้:

import-module servermanager
add-windowsfeature web-server -includeallsubfeature

ที่มา: http://www.iis.net/learn/install/installing-iis-85/installing-iis-85-on-windows-server-2012-r2

ตอนนี้แอพของฉันกำลังทำงาน


อันหนึ่ง 'dism' ใช้งานได้สำหรับฉัน (โดยไม่ใช้การเปลี่ยนแปลงที่เสนออื่น ๆ ) ฉันต้องเปลี่ยนสวิตช์ '/ all' ไปยังจุดสิ้นสุดเพื่อให้แน่ใจว่าคุณสมบัติ 'หลัก' ทั้งหมดได้รับการติดตั้งเช่นกัน
Jeroen Ritmeijer

สิ่งนี้ใช้ได้สำหรับฉัน ใช้ MVC 5 กับ. NET 4.5 บน Windows Server 2012 IIS โดยค่าเริ่มต้นจะไม่ติดตั้ง. NET 4.5
DPac

6

เราได้ย้ายแอปพลิเคชัน MVC ไปยังเซิร์ฟเวอร์ใหม่ ติดตั้ง. NET 4 และ MVC 3 แต่เรายังได้รับ“ ข้อผิดพลาด 403.14” ในกรณีนี้หมายความว่า IIS ไม่เข้าใจว่ากำลังใช้งานแอปพลิเคชัน MVC อยู่ซึ่งกำลังค้นหาหน้าเริ่มต้น

วิธีแก้ปัญหานั้นง่าย: HTTP Redirection ไม่ได้ถูกติดตั้งบนเซิร์ฟเวอร์

ตัวจัดการเซิร์ฟเวอร์ - บทบาท - เว็บเซิร์ฟเวอร์ (IIS) - บริการบทบาท - การเปลี่ยนเส้นทาง HTTP: ไม่ได้ติดตั้ง ติดตั้งแล้วแก้ปัญหาได้


1
Server Manager คืออะไร? ฉันจะหามันได้ที่ไหน
Elad Katz

จัดการเซิร์ฟเวอร์ตั้งอยู่ในเครื่องมือการดูแลระบบ
udog

5

นอกจากนี้หากแอปของคุณถูกคอมไพล์แล้วคุณควรจะมี

PrecompiledApp.config

ในรูทโฟลเดอร์ของแอพของคุณมิฉะนั้นคุณก็สามารถทำได้HTTP Error 403.14เช่นกัน


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

ผมจะมีความสุขจริงๆถ้าผมเห็นคำตอบนี้ก่อนที่จะใช้เวลา 2 ชั่วโมงและแก้มันด้วยตัวเอง ..
sotn

4

อีกวิธีที่เป็นไปได้ถ้าคุณย้าย global.asax ของคุณตรวจสอบให้แน่ใจว่ามาร์กอัปชี้ไปที่คลาส MvcApplication ที่ถูกต้อง หวังว่านี่จะช่วยใครซักคนในอนาคต


4

ฉันใช้ WebDeploy IIS Extension เพื่อนำเข้าเว็บไซต์ของฉันจาก IIS6 ไปยัง IIS7.5 ดังนั้นการตั้งค่า IIS ทั้งหมดจึงเป็นไปอย่างที่พวกเขาเคยทำในสภาพแวดล้อมการผลิต หลังจากลองใช้วิธีแก้ไขปัญหาทั้งหมดที่มีให้ที่นี่ไม่มีวิธีใดที่เหมาะกับฉันฉันเพียงแค่เปลี่ยนการตั้งค่า App Pool สำหรับเว็บไซต์จาก Classic เป็น Integrated


4

ฉันพบปัญหา 404.14 เดียวกันโดยฉับพลัน ในที่สุดปัญหาได้รับการแก้ไขโดยยกเลิกการเลือก "precompile ในขณะที่เผยแพร่" ในการตั้งค่าโปรไฟล์การเผยแพร่


กันที่นี่ การเผยแพร่ไม่มีปัญหามาจนถึงทุกวันนี้โดยไม่ จำกัด การเลือกแก้ไข ต่อไปแปลก
เซอร์ Rufo

4

ฉันเปลี่ยนเส้นทางเริ่มต้นที่จุดหนึ่งจาก:

routes.MapRoute(
"Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }

ถึง:

routes.MapRoute(
"Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index" }

ซึ่งทำให้ฉันมีข้อผิดพลาด ดีใจที่มีคนพูดถึงการกำหนดเส้นทางเพราะฉันอาจจะอยู่ที่นี่ตลอดไป


4

ในกรณีของฉัน ASP.NET 4.5 ไม่ได้รับการติดตั้งบนเซิร์ฟเวอร์ดังนั้นการติดตั้ง ASP.NET 4.5 จะแก้ไขปัญหาได้


4

คุณสามารถแก้ไขข้อผิดพลาดนี้ได้โดยการเรียกใช้ cmd ในฐานะผู้ดูแลระบบ ป้อนคำอธิบายรูปภาพที่นี่

ทำเช่นเดียวกับในรูปภาพสำหรับ windows 32 บิต

เพียงทำการเปลี่ยนแปลงใน 64 บิตเป็น framework64 แทนที่จะเป็นเฟรมเวิร์กเพียงไปที่ iis และรีเฟรชไซต์
หากคุณยังคงมีข้อผิดพลาดเกิดขึ้นให้ทำการเปลี่ยนแปลงในพูลแอ็พพลิเคชัน


3

ฉันมีปัญหาอื่นที่นำไปสู่ปัญหานี้

  • ฉันมั่นใจว่าแอพของฉันทำงานอยู่. net 4 ในโหมดรวม
  • ฉันเรียกใช้ aspnet_regiis.exe -i
  • ฉันตรวจสอบว่าการตั้งค่าการอนุญาตของโฟลเดอร์ถูกต้องสำหรับบัญชีที่ใช้งานแอพของฉัน

สิ่งเหล่านี้ไม่ทำงาน ปรากฎว่าใน web.config ของฉันภายใต้ system.webserver> โมดูลฉันมีต่อไปนี้:

<remove name="WindowsAuthentication" />

เห็นได้ชัดว่านี่เป็นการลบโมดูลการพิสูจน์ตัวตนของ windows ซึ่งดูเหมือนจะทำให้ทุกอย่างออกไป

ฉันหวังว่าสิ่งนี้จะช่วยให้ใครบางคนเพราะตอนนี้ฉันเสียเวลามากที่สุด!


3

UI แตกต่างกันเล็กน้อยใน Windows Server เวอร์ชันที่ใหม่กว่า ที่นี่คุณต้องเปิดใช้งาน ASP.Net เพื่อให้ทำงานบน IIS ได้

แก้ไข IIS & Asp.net


2

การเพิ่มวิธีแก้ไขปัญหาอื่นสำหรับปัญหานี้

ในไฟล์ Global.asax.cs ของฉันฉันได้ปิดการใช้งานไฟล์ php ที่พยายามไม่ให้ถูกใช้โดยไพพ์ไลน์ MVC โดยใช้สิ่งต่อไปนี้:

routes.IgnoreRoute( "{*php}" );

ฉันเคยทำสิ่งเหล่านี้ก่อนหน้านี้ในโครงการ MVC2 และทำงานได้ดี แต่การทำเช่นนี้ในแอป MVC 3 ของฉันทำให้เกิดปัญหาที่รายงานข้างต้น


2

อีกสาเหตุหนึ่งที่อาจเกิดขึ้นได้ - ของคุณRouteConfig.csหรือWebApiConfig.csไม่ถูกต้อง

ในกรณีของฉันฉันมีเส้นทางที่กำหนดไว้เช่นนี้ (จดวงเล็บแทนวงเล็บปีกกา):

...
routeTemplate: "api/(something}"
...

มันใช้งานได้สำหรับฉัน! routes.MapRoute( name:"Default", url:"{controller}/{action}/{repositoryId}", defaults:new { controller = "Account", action = "Login", id = UrlParameter.Optional } );ในกรณีที่ผมเปลี่ยน เมื่อฉันคงid = UrlParameter.Optionalอยู่กับrepositoryId = UrlParameter.Optionalมันเริ่มต้นในการทำงาน!
Dmitresky

2

โปรดทราบสำหรับผู้ใช้ Windows 8 คุณต้องเพิ่ม / ลบส่วนประกอบ windows และลบรุ่นของ. net reboot แล้วติดตั้งใหม่เพื่อลงทะเบียนกับ IIS ฉันเชื่อว่าสิ่งนี้จะเกิดขึ้นถ้าคุณได้รับ. net 4.5 จาก visual studio และติดตั้ง IIS หลังจากนั้น


2

แปลกอย่างที่เห็นการติดตั้ง IIS ใหม่เป็นสิ่งที่ใช้ได้กับฉันด้วยคำสั่งต่อไปนี้เรียกใช้จากภายในโฟลเดอร์. net version:

aspnet_regiis.exe /i

ป้อนคำอธิบายรูปภาพที่นี่

เมื่อฉันรันคำสั่งนี้เป็นครั้งแรกฉันเริ่มได้รับ HTTP Error 403.14 แต่เมื่อฉันรันคำสั่งอีกครั้งมันแก้ปัญหาได้

Obs : อีกอย่างหนึ่งที่ฉันทำคือลบ HTTP Redirect ออกจากฟีเจอร์เซิร์ฟเวอร์ในหน้าจอการจัดการเซิร์ฟเวอร์ก่อนทำการติดตั้ง IIS อีกครั้ง บางทีนี่อาจมีผลกระทบในการแก้ปัญหา แต่ฉันไม่แน่ใจ ดังนั้นหากการติดตั้ง IIS ยังไม่ทำงานโปรดลองลบ HTTP Redirect แล้วลองใหม่อีกครั้ง หวังว่ามันจะใช้ได้ผลสำหรับคุณเช่นกัน


FYI aspnet_regiis.exeไม่ได้ติดตั้งหรือติดตั้ง IIS ใหม่เพียงแค่ลงทะเบียน. NET Framework รุ่นใดรุ่นหนึ่งเพื่อให้ IIS สามารถใช้สำหรับการโฮสต์แอปพลิเคชัน
stephen

1

เพื่อแก้ปัญหานี้โดยไม่ต้องใช้โหมด 32 บิตคุณจะต้องอัปเดตซอร์สโค้ดสำหรับโครงการนี้

public static void RegisterUrlRoutesFromAttributes(RouteCollection routes)
{
    // Enumerate assembly for UrlRoute attributes.
    List<MapRouteParams> routeParams = new List<MapRouteParams>();
    AppDomain.CurrentDomain.GetAssemblies()
        .ToList()
        .ForEach(assembly => routeParams.AddRange(GetRouteParamsFromAttributes(assembly)));

ฉันได้หยิบยกปัญหานี้ขึ้นมาเพื่ออภิปรายเกี่ยวกับกระดานสนทนาที่โครงการ codeplex บนคลาวด์ด้านไอที

http://itcloud.codeplex.com/discussions/262000


1

สิ่งนี้ใช้ได้กับฉันและอาจเป็นประโยชน์กับอีกคนหนึ่ง

บางทีส่วนประกอบที่ต้องการทั้งหมดไม่ได้อยู่หรือ / และไม่ได้ลงทะเบียนอย่างถูกต้อง ในการแก้ปัญหานี้ให้ลองยกเลิกการเลือกตัวเลือกทั้งหมดในแผงควบคุม -> เปิดหรือปิดคุณสมบัติ Windows -> บริการข้อมูลทางอินเทอร์เน็ต -> บริการเวิลด์ไวด์เว็บ -> คุณสมบัติการพัฒนาแอปพลิเคชันยกเลิกการเลือกตัวเลือกทั้งหมด ตรวจสอบว่าปัญหาได้รับการแก้ไขหรือไม่

ป้อนคำอธิบายรูปภาพที่นี่


1

หากคุณใช้ IIS 8.5 บน Windows 8 หรือ Server 2012 คุณอาจพบว่าการรัน mvc 4/5 (.net 4.5) ไม่ทำงานในไดเรกทอรีเสมือน ถ้าคุณสร้างรายการโลคัลโฮสต์ในไฟล์โฮสต์เพื่อชี้กลับไปที่เครื่องของคุณและจากนั้นชี้เว็บไซต์ IIS ท้องถิ่นใหม่ไปยังโฟลเดอร์นั้น (ด้วยรายการส่วนหัวของโฮสต์ที่ตรงกัน) คุณจะพบว่ามันใช้งานได้


0

ฉันสร้างเนมสเปซใหม่ (และโฟลเดอร์) เหมือนกันกับเส้นทางไปยังตัวควบคุม (เช่นMvcApp/Test/SomeClasses.csและMvcApp/Controllers/TestController.cs) สิ่งนี้ส่งผลให้ 403.14!


0

สำหรับฉันทางออกคือการเพิ่มแพ็คเกจ NuGet Microsoft.AspNet.WebPages (รวมถึงการพึ่งพามีดโกนและโครงสร้างพื้นฐาน) ในโครงการเว็บของฉัน

โครงสร้างพื้นฐานจะต้องติดตั้งใหม่อย่างแข็งขันเนื่องจากไม่ได้เพิ่มเป็นการอ้างอิงในตอนแรก


0

ในกรณีของฉัน. NET CRL Version ใน Application pool prppertires ถูกตั้งค่าเป็น No code ที่มีการจัดการ (ไม่ทราบสาเหตุ) การตั้งค่าเป็น. NET CRL เวอร์ชัน v4.0.30319 แก้ปัญหาได้

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