“ Parser Error Message: ไม่สามารถโหลดประเภท” ใน Global.asax


203

ฉันกำลังทำงานกับโครงการ MVC3 และได้รับข้อผิดพลาดดังต่อไปนี้:

ข้อความแยกวิเคราะห์ข้อผิดพลาด: ไม่สามารถโหลดประเภท 'GodsCreationTaxidermy.MvcApplication'

ข้อผิดพลาดของแหล่งที่มา:

บรรทัด 1: <%@ Application Codebehind="Global.asax.cs" Inherits="GodsCreationTaxidermy.Core.MvcApplication" Language="C#" %>

ข้อผิดพลาดที่ฉันได้รับไม่สามารถโหลด GodsCreationTaxidermy.Core.MvcApplication ได้ แต่ในหน้าจอนี้ shot ส่วน Core ไม่แสดงในข้อผิดพลาด:

ภาพหน้าจอข้อผิดพลาด

ไม่มีใครมีแนวคิดหรือวิธีแก้ไขข้อผิดพลาดนี้หรือไม่?


8
คุณมีคลาส GodsCreationTaxidermy.Core.MvcApplication ในใบสมัครของคุณหรือไม่? ถ้าไม่ใช่โปรดสร้างโครงการเดียวกันและคอมไพล์ มันจะทำงานได้อย่างแน่นอน
Shailesh

4
ใช่ฉันมี GodsCreationTaxidermy.Core.MvcApplication (Global.asax.cs)
PsychoCoder

ไฟล์ Global.asax ที่ดูเหมือนว่าจะใช้งาน (ตามภาพหน้าจอ) นั้นดูแตกต่างจากไฟล์ที่คุณแสดง
ดารินทินดิมิทรอฟ

ตรวจสอบเพื่อดูว่าสตริงสืบทอดเป็นเหมือนเส้นทางไปยังชั้นเรียนในใบสมัครของคุณ (namespace + ชื่อพา ธ ) นั่นคือพวกเขาทั้ง GodsCreationTaxidermy.Core.MvcApplication
linkerro

นั่นเป็นหนึ่งในปัญหาที่ดารินไม่ว่าฉันจะทำอะไรออกไปจากส่วนหลักเสมอ
PsychoCoder

คำตอบ:


175

เว็บเซิร์ฟเวอร์ในพื้นที่ของคุณกำลังเรียกใช้รหัสที่แตกต่างจากที่คุณใช้งานจริง ตรวจสอบให้แน่ใจว่าคุณหยุดการดีบักหยุดเว็บเซิร์ฟเวอร์ในพื้นที่ของคุณทำความสะอาดและสร้างใหม่ตามที่ Peter แนะนำให้ตรวจสอบ global.asax และ global.asax.cs ของคุณอีกครั้งและลองอีกครั้ง

หากวิธีนี้ใช้ไม่ได้และคุณใช้ IIS ในเครื่องให้ลองลบไซต์ในตัวจัดการ IIS แล้วสร้างมันใหม่ด้วยตนเอง


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

2
ล้าง / สร้างใหม่ + สร้างไดเรกทอรีเสมือนใหม่จากนั้นทำงาน
fantastik78

4
มีปัญหาเมื่อฉันมีโครงการเดียวกันเปิดในสองอินสแตนซ์ของ Visual Studio ดังนั้นฉันจึงเรียกใช้ IIS Express สองอินสแตนซ์ ฉันต้องปิดมันแล้วมันก็ถูกแก้ไข
lvmeijer

4
คุณสามารถลองลบโฟลเดอร์ bin / obj ในโครงการของคุณ
arni

1
ฉันทำตามคำแนะนำเหล่านี้และเพิ่มการทำความสะอาด / สร้างใหม่อีกสองสามครั้งเปลี่ยนช่องว่างในไฟล์. asax จัดรูปแบบจอภาพใหม่อีกครั้ง
MrBoJangles

206

ตรวจสอบว่าเส้นทางออกโครงการ (คุณสมบัติของโครงการ / รูปร่าง) ตั้งbinและไม่ได้ bin\Releaseหรือbin\Debug

ด้วยเหตุผลบางประการ IIS (VS Development Server หรือ Local IIS) เข้าถึงไลบรารีจากbinไดเรกทอรีเสมอ (และจะไม่ค้นหาไดเรกทอรีย่อย)


27
เครดิตที่มันครบกำหนด แก้ไขปัญหาของฉันแอปพลิเคชันของฉันถูกตั้งค่าให้ใช้ bin \ Debug เปลี่ยนเป็นถังเพื่อแก้ไข ขอบคุณมาก.
Joey Bob

เป็นที่น่าสนใจที่จะเรียนรู้ว่าโครงการ ASP.NET ไม่ได้ใช้ถาดเส้นทางออกเริ่มต้น / $ (การกำหนดค่า) / ขอบคุณมากสำหรับคำตอบ!
Jaanus Varus

2
@JamesPusateri: ระวังหน่อย ทุกครั้งที่คุณเปิดตัวมันจะใช้สิ่งที่อยู่ใน / bin ดังนั้นอาจเป็นผลของการสร้างครั้งนี้ที่คุณสร้างขึ้นหลังจากที่คุณเปลี่ยนมัน
Vincent de Lagabbe

1
ว้าวที่ปี 2018 IIS ยังคงทำงานในลักษณะนี้ แย่มากแย่กับ Microsoft ขอบคุณ!
Rodrigo T.

1
ไม่มีการเปลี่ยนแปลงใด ๆ มาเกือบ 7 ปีแล้วคำแนะนำยังคงช่วย
Yuriy Vikulov

33

ลองปรับเปลี่ยนไฟล์ global.asax ของคุณ (เพิ่มช่องว่างอย่างง่ายๆ) แล้วเรียกใช้ใหม่ สิ่งนี้จะบังคับให้เว็บเซิร์ฟเวอร์ในตัวรีเฟรชและคอมไพล์ไฟล์ global.asax ใหม่

ทำความสะอาดและสร้างใหม่ - ควรแก้ไขปัญหาด้วย


4
การปรับเปลี่ยน global.asax ไม่ได้ทำอะไรสำหรับฉัน แต่สะอาดและสร้างแก้ไขปัญหา :)
NightShovel

ฉันมีปัญหานี้เมื่อพลังงานหมด ทำความสะอาดและสร้างใหม่ช่วย ขอบคุณ!
Gorgi Rankovski

การทำความสะอาดล้มเหลว งานสร้างล้มเหลว ฉันไม่มีปัญหากับเส้นทางการสร้างของฉัน อย่างไรก็ตามเรื่องนี้ได้หลอกลวง ขอบคุณ!
egandalf

ขอบคุณสำหรับคำตอบของคุณนาย Munnings
dada

30

สิ่งนี้เกิดขึ้นบางครั้งถ้าคุณเปลี่ยนข้อมูลเนมสเปซ (ระดับโครงการหรือระดับชั้นเรียน) หลังจากที่global.asaxสร้าง

คลิกขวาที่Global.asaxไฟล์และเลือก "เปิดด้วย" แล้วเลือก "ตัวแก้ไข XML (ข้อความ) พร้อมการเข้ารหัส" (ตัวแก้ไขอื่นอาจทำงานได้เช่นกัน แต่นี่คือสิ่งที่ฉันใช้)

จากนั้นแก้ไขส่วน "รับช่วง" ในคำสั่ง XML

<% @ แอปพลิเคชัน Codebehind = "Global.asax.cs " Inherits = "GodsCreationTaxidermy.MvcApplication"ภาษา = "C #"%>)

เพื่อให้ตรงกับชื่อเต็มจริงของคลาสแอปพลิเคชันของคุณ และนั่นคือมัน

อีกทางเลือกหนึ่งคือการคัดลอกรหัสของคุณทั้งหมดจาก Global.asax.cs แล้วลบและสร้างไฟล์ Global.asax อื่น (จากนั้นคัดลอกรหัสกลับสู่ Global.asax.cs)


สิ่งนี้ได้ผลกับฉันด้วย ฉันเปลี่ยนเนมสเปซสำหรับแอสเซมบลีสำหรับโครงการทั้งหมดในโซลูชัน ดังนั้นต้องแก้ไขGlobal.asaxไฟล์ตามที่ระบุไว้ในคำตอบนี้และทำให้มันตรงกับสิ่งที่อยู่ในการตั้งค่าการกำหนดค่าโครงการ
พระอิศวร

21

ฉันปิดและเปิดสตูดิโอภาพขึ้นใหม่และใช้งานได้


4
ปิดสตูดิโอภาพทั้งหมดของคุณ
Jboy Flaga

11
ก่อนอื่นเราทุกคนควรลองออกจากรถปิดประตูทั้งหมดแล้วกลับเข้ามาอีกครั้ง
Pajics

ไม่คุณต้องปิดประตูทุกคันในเวลาเดียวกัน
BlackICE

17

ฉันต้องไปที่ BUILD -> MANAGER CONFIGURATION MANAGER และ - ahem - ทำเครื่องหมายที่ช่องถัดจากโครงการของฉันเพื่อให้แน่ใจว่ามันจะถูกสร้างขึ้นจริง


2
ฉันไม่เข้าใจ downvote นี่อาจเป็นวิธีแก้ปัญหา อันนี้มีความเกี่ยวข้องมากกว่าที่คนส่วนใหญ่คิดว่า ... หากไม่ได้เลือกก็ไม่ได้เป็นตำแหน่งที่ชัดเจนที่สุดเสมอไป โดยเฉพาะเมื่อมีการกำหนดค่าหลายอย่าง
Anthony Mason

ฉันชอบคำตอบและเหตุผลของคุณ!
UKM

1
นี่คือปัญหาของฉันเช่นกันและฉันก็ไม่รู้ว่าโครงการได้ถูกยกเลิกการเลือกจากการกำหนดค่าอย่างไร
เซท

5

ฉันมีปัญหานี้วันนี้และฉันใช้เวลาสักครู่เพื่อค้นหาสาเหตุ

โดยทั่วไปโครงการ VS2015 หลักของฉันคือการรวมโครงการย่อยที่สร้างขึ้นโดยใช้. Net Framework เวอร์ชันที่สูงขึ้น

เมื่อคุณมีปัญหานี้ VS2015 ยินดีที่จะรายงานว่าวิธีการแก้ปัญหานั้นสร้างขึ้นโอเค แต่เมื่อคุณลองและเรียกใช้เว็บไซต์มันจะให้ข้อผิดพลาดที่ทำให้เข้าใจผิดโดยบอกว่าGlobal.asax.csไฟล์ของคุณผิด

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

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

ตรวจสอบOutputหน้าต่างของคุณเพื่อดูข้อความเช่นนี้:

The primary reference "C:\Projects\Business Objects 4\bin\Release\BusinessObjects.dll" 
could not be resolved because it was built against 
the ".NETFramework,Version=v4.5" framework. 
This is a higher version than the currently targeted framework
".NETFramework,Version=v4.0".

แน่นอนว่าวิธีแก้ปัญหาคือคลิกขวาที่โครงการหลักของคุณเลือกแท็บด้านบน "แอปพลิเคชัน" และเปลี่ยนเวอร์ชันกรอบงานเป้าหมายเป็นเวอร์ชันที่สูงกว่าซึ่งตรงกับโครงการย่อยของคุณ

เป็นเรื่องน่ารำคาญที่ Visual Studio 2015 จะช่วยให้คุณสร้างและเรียกใช้โซลูชันที่ประกอบด้วยปัญหานี้อย่างเงียบ ๆ มันกำลังถามหาปัญหา .. !


2

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


2

ฉันเพิ่งพบสิ่งนี้ในแอปพลิเคชัน MVC5 และไม่มีอะไรทำงานให้ฉัน สิ่งนี้เกิดขึ้นทันทีหลังจากที่ฉันพยายามทำ SVN กลับไปเป็นโครงการรุ่นเก่ากว่า

ฉันต้องลบ global.asax.cs แล้วเพิ่มใหม่โดยคลิกขวาที่โครงการ -> เพิ่มรายการใหม่ -> Global.asax และนั่นก็แก้ไขมันในที่สุด

แค่คิดว่ามันอาจช่วยใครซักคน


หากวิธีนี้แก้ไขได้สำหรับคุณอาจมีบางอย่างเกิดความสับสนเกี่ยวกับคุณสมบัติ "Build action" ของglobal.asax.csไฟล์ที่มีอยู่ ควรตั้งค่าเป็น "รวบรวม" การดำเนินการ build ของglobal.asaxไฟล์นั้นควรถูกตั้งเป็น "เนื้อหา"
Steven Liekens

ฉันทำสิ่งที่ @iAteABug_And_iLiked_it อย่างแน่นอนและปัญหาได้รับการแก้ไข!
zinczinc

2

ฉันต้องรายงานว่าฉันได้ลองอย่างน้อย 4 ข้อเสนอแนะจากโพสต์นี้ ไม่มีใครทำงานเลย แต่ฉันก็ยินดีที่จะรายงานว่าฉันกู้คืนได้โดยการเรียกคืนจากการสำรองข้อมูล ต้องอัปเดตการเปลี่ยนแปลงรหัสล่าสุดของฉันจากไฟล์บันทึกเท่านั้น ใช้เวลาน้อยกว่า 10 นาที ใช้เวลา 3 ครั้งในการอ่านโพสต์นี้และลองคำแนะนำอื่น ๆ ขอโทษ

มันเป็นข้อผิดพลาดที่แปลกมาก ขอให้โชคดีที่ทุกคนประสบเกรทลินนี้


2

ฉันมีปัญหาเดียวกันเมื่อฉันมี Visual Studio 2 อินสแตนซ์ที่ทำงานโครงการเดียวกัน ดังนั้นฉันจึงปิดทั้ง Visual Studio และเปิดอินสแตนซ์เดียวเท่านั้นและมันใช้ได้ดีตอนนี้!


2

ฉันกำลังทำงานในโครงการเว็บ ASP.NET 'โฟลเดอร์ที่ใช้' เก่ากว่า (ซึ่งฉันเกลียด) - และพบว่านี่เป็นการแก้ไขของฉัน:

สร้างApp_Codeโฟลเดอร์ (หากคุณยังไม่มี)

ย้ายGlobal.asax.vbไฟล์ลงในApp_Codeโฟลเดอร์

มาร์กอัปใน Global.asax สามารถออกจาก namespaces ใด ๆ (อย่างน้อยสำหรับรูปแบบของโครงการนี้ afaik):

<%@ Application Codebehind="Global.asax.vb" Inherits="MyApp" Language="VB" %>

... โดยที่ "MyApp" เป็นชื่อของคลาสที่กำหนดไว้ใน Global.asax.vb


2

"BUILD -> MANAGER การกำหนดค่าและ - อะแฮ่ม - ทำเครื่องหมายที่ช่องถัดจากโครงการของฉันเพื่อให้แน่ใจว่ามันจะถูกสร้างขึ้นจริง ๆ " และไปที่โฟลเดอร์โครงการใน windows explorer กดตัวเลือกและยกเลิกการเลือกช่องทำเครื่องหมาย "อ่านอย่างเดียว" ช่วย


มันใช้งานได้สำหรับฉัน โครงการยังไม่ได้เปิดใช้งานตัวเลือกฉันไม่รู้ว่าทำไม แต่วิธีแก้ปัญหานี้เป็นสิ่งที่ฉันต้องการขอบคุณ
willyMon

1

ล้างโฟลเดอร์ bin สร้างไลบรารีคลาสแบบพึ่งพาทั้งหมดและอ้างอิงในโครงการหลักและสร้างโซลูชันที่สมบูรณ์

แหล่ง


1

ฉันก็ประสบปัญหาเดียวกัน แม้จะทำตามทุกคำตอบ แต่ก็ไม่ได้ผล จากนั้นฉันเปลี่ยน "Inherits = namespace.class " เป็น "Inherits = ชื่อชุดประกอบแบบเต็ม " เช่น "Inherits = namespace.class, ชุดประกอบ, รุ่น =, วัฒนธรรม =, PublicKeyToken = " หวังว่าจะช่วยได้


1

สิ่งนี้อาจเกิดขึ้นได้หากคุณลืมตั้งค่าโซลูชัน VS เป็น "โครงการเริ่มต้นหลายรายการ" โดยไม่ตั้งใจหากคุณใช้งานเว็บและ WebApi จากโซลูชันเดียวกัน

คุณสามารถตรวจสอบได้โดยคลิกขวาที่โซลูชันใน Solution Explorer และเลือก 'คุณสมบัติ' จากนั้นมองหา 'โครงการเริ่มต้น'


ฉันมีความคล้ายคลึงกับสิ่งนี้: ฉันกำลังใช้งานโครงการ API ที่ไม่ถูกต้องในโซลูชัน ฉันมีข้อผิดพลาดในการคอมไพเลอร์ใน API ฉันคิดว่าฉันกำลังทำงานอยู่ แต่ VS ไม่ได้รับมันเมื่อฉันวิ่งทางออกแม้หลังจากทำความสะอาด
จอห์น

1

ลบ.vsไดเร็กทอรีออกจากรูทโซลูชัน สะอาด สร้างใหม่

ปัญหานี้ทำให้ฉันเป็นบ้าครั้งหนึ่งในชั่วขณะหนึ่งและฉันก็จบลงที่นี่เพื่ออ่านคำตอบ ฉันสงสัยว่ามีหลายสาเหตุที่สามารถสร้างข้อยกเว้นนี้ได้เมื่อใช้งานได้สำหรับฉัน


หลายชั่วโมงของการลองใช้คำแนะนำอื่น ๆ นับพันและนี่เป็นข้อเสนอแนะสำหรับฉัน แอปพลิเคชันของฉันทำงานได้ดีใน Visual Studio ทั้งในการดีบักและการกำหนดค่าการเผยแพร่ แต่เมื่อเผยแพร่ไปยัง IIS ฉันได้รับข้อผิดพลาด การลบโฟลเดอร์. vs และการปรับใช้อีกครั้งสามารถแก้ไขปัญหาได้
Philip Stratford

1

ใช่ฉันอ่านคำตอบทั้งหมด อย่างไรก็ตามหากคุณเป็นฉันและดึงสิ่งที่เหลืออยู่ในเส้นผมออกมาให้ลองตรวจสอบโฟลเดอร์ \ bin เช่นเดียวกับไฟล์ proj ส่วนใหญ่อาจมีการกำหนดค่าหลายอย่างภายใต้องค์ประกอบ XML PropertyGroupจากนั้นฉันเปลี่ยนOutputPathค่าจาก 'bin \ Debug' เพื่อลบส่วน '\ Debug' และสร้างใหม่ สิ่งนี้วางไฟล์ในโฟลเดอร์ \ bin ที่อนุญาตให้ Express IIS ค้นหาและโหลดบิลด์ ฉันเหลือสงสัยว่าวิธีใดที่ถูกต้องในการจัดการบิลด์ที่แตกต่างกันเหล่านี้เพื่อให้การปรับใช้ดีบักในเครื่องสามารถค้นหาและโหลดสภาพแวดล้อมเป้าหมายได้


นี่เป็นสิ่งเดียวที่ทำงานได้ ศพที่ฝังอยู่มากมาย ... มันเป็นอย่างนี้ที่ทำให้ข้าพิจารณาอาชีพอื่นอย่างจริงจัง
doveryai

0

ปัญหานี้ฉันได้รับการแก้ไขโดยให้สิทธิ์ที่ถูกต้องของโฟลเดอร์รวมทั้งตรวจสอบจาก IIS

ฉันได้รับอนุญาตให้ทุกคนขณะที่ฉันกำลังทดสอบในสภาพแวดล้อมท้องถิ่นของฉัน แต่ในโหมดการเผยแพร่ฉันคิดว่าเราให้สิทธิ์แก่ผู้ใช้ ASP.Net เท่านั้น


0

ฉันยังได้รับข้อผิดพลาดเดียวกัน ... ตรวจสอบชื่อของแอปพลิเคชันที่คุณพัฒนาอย่างถูกต้องเช่น เนมสเปซและชื่อแอสเซมบลีที่ระบุและลองเปลี่ยนชื่อโฟลเดอร์ที่สร้างขึ้นสำหรับแอพพลิเคชั่นทางกายภาพทั้งหมดนี้ควรจะเหมือนกับชื่อในเนมสเปซด้านบนที่มีอยู่ในไฟล์ global.asax


0

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


0

แอปของฉันสร้างขึ้นใน VS เวอร์ชันเก่ากว่าและไม่มีโฟลเดอร์ช่องเก็บ ฉันอัพเกรดมันเป็นเวอร์ชั่นใหม่กว่าและมีฝันร้ายที่นำมันไปใช้งาน ในที่สุดฉันก็ติดตามข้อผิดพลาดนี้ลงในโครงการ> คุณสมบัติ> แอปพลิเคชัน Framework เป้าหมายถูกตั้งค่าเป็น 2.0 การเปลี่ยนมันบนเซิร์ฟเวอร์เพื่อให้ตรงกับใน IIS Manager / App Pool แก้ไขปัญหาให้ฉัน


0

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


0

ปัญหาสำหรับฉันคือฉันไม่ได้รวม global.asax.cs ในโครงการของฉัน และเนื่องจากฉันกำลังคัดลอกไฟล์จาก. net 4.5 ไปยัง 4.0 ฉันไม่ได้ใส่เครื่องหมายบรรทัดที่ไม่จำเป็นใน 4.0 เพราะมันไม่ได้รวมสตูดิโอภาพที่รวบรวมไว้แล้วโดยไม่มีปัญหา แต่เมื่อฉันรวมมันจะเน้นเส้นที่ทำให้เกิดปัญหา

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
//using System.Web.Http;
using System.Web.Mvc;
//using System.Web.Optimization;
using System.Web.Routing;

namespace YourNameSpace
{
    public class WebApiApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            //GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            //BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }
}

0

ฉันใช้เวลาหนึ่งวันพยายามแก้ไขปัญหานี้

สิ่งเดียวที่ทำงานได้คือการลบไฟล์. sln สร้างไฟล์ใหม่และเพิ่มโครงการทีละรายการ

¯ \ _ (ツ) _ / ¯ - การเขียนโปรแกรม - ¯ \ _ (ツ) _ / ¯


0

สำหรับกรณีของฉันการประกอบเว็บเป็นส่วนหนึ่งของ GAC ... ดังนั้นหลังจากสร้างแล้วจะต้องติดตั้งใน GAC และทำงานได้


0

ฉันพบข้อความแสดงข้อผิดพลาดนี้และในที่สุดก็พบว่าข้อความแสดงข้อผิดพลาดนั้นทำให้เข้าใจผิด ในกรณีของฉันดูเหมือนว่าจะมีปัญหาการกำหนดเส้นทางใน IIS ซึ่งทำให้ global.asax จากเว็บไซต์อื่นบนเว็บเซิร์ฟเวอร์เพื่ออ่านจึงสร้างข้อผิดพลาด

ใน IIS เว็บไซต์ของฉันเชื่อมโยงกับ http: * 80: webservices.local และมีแอปพลิเคชันชื่อ MyAPI ฉันได้รับข้อความหวั่นเมื่อเรียกใช้แอปพลิเคชัน MyAPI โดยใช้ที่อยู่ IP ของเว็บเซิร์ฟเวอร์

เพื่อให้สามารถเรียกแอปพลิเคชันของฉันได้สำเร็จฉันต้องเพิ่มรายการโฮสต์ไฟล์สำหรับ webservices.local บนเครื่องทั้งหมดที่เรียกว่าแอปพลิเคชัน MyAPI จากนั้นคำขอทั้งหมดของฉันจะต้องนำหน้าด้วยhttp: //webservices.local/MyAPI/เพื่อที่จะกำหนดเส้นทางได้อย่างถูกต้อง


0

ฉันลองทุกอย่างที่นี่และไม่มีอะไรทำงาน โครงการของฉันอยู่ใน VS 2013 ฉันได้อัปเกรดเป็น VS 2015 และได้สร้างแอปพลิเคชันใหม่ทั้งหมดของฉันในปี 2015 แต่การโหลดการคอมไพล์การสร้าง ฯลฯ แอปเก่าทั้งหมดของฉันที่สร้างขึ้นในปี 2013 ในเวอร์ชันนั้น

ฉันลงเอยเพียงแค่โหลดโซลูชันในปี 2558 และแก้ไขให้ฉัน


0

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

  1. เปลี่ยนเป้าหมายแพลตฟอร์มเป็น CPU ใดก็ได้ ฉันไม่ได้กำหนดค่านี้ในขณะนี้ดังนั้นฉันต้องไปที่เครื่องมือจัดการการกำหนดค่าและเพิ่ม ฉันรวบรวมเฉพาะสำหรับ x64 สิ่งนี้เพียงอย่างเดียวไม่สามารถแก้ไขข้อผิดพลาดได้
  2. เปลี่ยนเส้นทางออกไปแทนbin\ bin\x64\Debugฉันลองมาหลายครั้งแล้วก่อนที่จะเปลี่ยนเป้าหมายแพลตฟอร์ม ไม่เคยสร้างความแตกต่างนอกจากการรับข้อผิดพลาดที่ล้มเหลวในการโหลดชุดประกอบเนื่องจากรูปแบบที่ไม่ถูกต้อง

เพื่อความชัดเจนฉันต้องทำทั้งสองอย่างก่อนที่มันจะเริ่มทำงาน ฉันลองพวกมันทีละหลาย ๆ ครั้ง แต่มันก็ไม่เคยแก้ไขจนกว่าฉันจะทำทั้งสองอย่าง

หากฉันเปลี่ยนการตั้งค่าเหล่านี้อย่างใดอย่างหนึ่งกลับไปเป็นต้นฉบับฉันจะได้รับข้อผิดพลาดเดิมอีกครั้งแม้จะมีการเรียกใช้ Clean Solution และลบทุกอย่างในbinไดเรกทอรีด้วยตนเอง


0

สองวิธีในการรับสิ่งนี้:

  • ตัวจัดการการกำหนดค่าแสดง dll builds เป็นการรวมกันของ '64' และ 'any cpu' builds นำพวกเขาทั้งหมดไปที่บิลด์เดียวกันแก้ไข

  • เมื่อสลับระหว่างสาขาเส้นทาง IIS express บางครั้งไม่ได้รับการปรับปรุง คลิกขวาที่ 'IIS Express' ในแถบงาน> แสดงแอปพลิเคชันทั้งหมดและยืนยันว่าเส้นทางนั้นไปยังสาขาที่ถูกต้อง

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