System.MissingMethodException: ไม่พบวิธี?


245

สิ่งที่ครั้งหนึ่งเคยทำงานในแอป asp.net webforms ของฉันตอนนี้โยนข้อผิดพลาดนี้:

System.MissingMethodException: ไม่พบวิธีการ

DoThisวิธีการที่อยู่ในระดับเดียวกันและมันควรจะทำงาน

ฉันมีตัวจัดการทั่วไปเช่น:

public class MyHandler: IHttpHandler
{
    public void Processrequest(HttpContext context)
    {
      // throws error now System.MissingMethodException: Method not found?
      this.DoThis(); 
    }

    public void DoThis()
    {
    //
    }
}

คุณสามารถโพสต์รหัสเพิ่มเติมได้หรือไม่เนื่องจากรหัสนี้ไม่ถูกต้อง
mironych

2
คือsomepageอะไร ตามที่ระบุไว้ 'เสียง' รหัสนี้ไม่ถูกต้อง โปรดให้ข้อมูลโค้ดที่สมบูรณ์ซึ่งแสดงให้เห็นถึงปัญหา
เอมี่

คำตอบ:


388

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


62
โดยเฉพาะอย่างยิ่งต้องแน่ใจว่าเวอร์ชันเก่าไม่ได้อยู่ใน GAC
ภาระ

7
นอกจากนี้หากคุณกำลังทำงานในกรณีที่โชคร้ายที่คุณมีห้องสมุดที่ขึ้นอยู่กับห้องสมุดที่ขึ้นอยู่กับห้องสมุด ฯลฯ จากนั้นให้แน่ใจว่าได้ทำความสะอาด / สร้างห้องสมุดขึ้นอยู่ทั้งหมดด้วย dll รุ่นเดียวกัน NHibernate ในกรณีของฉัน ...
Serj Sagan

2
การอัพเกรดกรอบงาน. NET เป้าหมายสำหรับโครงการยังสามารถแก้ไขข้อผิดพลาดได้ ฉันกำลังอัปเกรดโครงการ MVC4 / Web API 1 ที่กำหนดเป้าหมาย. NET 4.5 หลังจากอัปเกรดการอ้างอิง MVC, Web API และ Entity Framework ทั้งหมดแล้วฉันพบข้อผิดพลาดเดียวกัน การเปลี่ยนเฟรมเวิร์กเป้าหมายเป็น. NET 4.5.1 ทำให้ข้อผิดพลาดหายไป
Sergey K

1
มันเกิดขึ้นกับฉันเมื่อฉันปรับใช้เฉพาะไฟล์ exe ที่เปลี่ยนแปลงและไม่ได้ปรับใช้ helper dll เพราะมันไม่ได้มีการเปลี่ยนแปลงรหัสใด ๆ - แต่มันถูกสร้างขึ้นใหม่ ฉันปรับใช้ dll ที่สร้างใหม่และข้อผิดพลาดก็หายไป ฉันได้ทำการปรับใช้อื่น ๆ โดยไม่ต้องปรับใช้ dll ที่ไม่มีการเปลี่ยนแปลงเป็นอย่างอื่นและไม่มีปัญหาดังนั้นฉันจึงยังไม่แน่ใจว่าเกิดอะไรขึ้นที่นี่ ฉันเดาว่าสิ่งที่ปลอดภัยที่ต้องทำคือปรับใช้ไฟล์ที่สร้างใหม่ไม่ว่าจะมีการเปลี่ยนแปลงโค้ดพื้นฐานหรือไม่ก็ตาม
Ho Ho Ho

14
ฉันพบว่ามีประโยชน์ในการเปิดหน้าต่าง Debug -> Windows -> Modules เมื่อทำการดีบั๊กเพื่อดูว่าแอสเซมบลีถูกโหลดจากที่ใด
JamesD

32

⚠️ ผิด Nuget แพคเกจรุ่น ⚠️

ผมมีโครงการทดสอบหน่วยซึ่งถูกดึงใน บริษัท ของเราภายใน EF Nuget แพคเกจการเข้าถึงข้อมูลและรหัสที่ ดึงในแพคเกจภายนอกที่มีรุ่นที่เป็นวิธีการที่อยู่เบื้องหลังรุ่นปัจจุบัน

ปัญหาคือการตั้งค่า Nuget สำหรับแพ็คเกจถูกตั้งไว้ที่least version; และเวอร์ชั่นที่เก่ากว่าชนะและถูกใช้ระหว่างการดำเนินการ ....

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


💡 โซลูชั่น 💡

โดยการตั้งค่า / ปรับปรุงแพคเกจใน Nuget เพื่อใช้และ[รับ] ล่าสุดแก้ไขปัญหา


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

โครงการทดสอบหน่วยของฉันอ้างอิงเวอร์ชันใหม่กว่าโครงการจริงของฉัน
Rhyous

26

ฉันแก้ไขปัญหานี้ด้วยการติดตั้ง. NET Framework เวอร์ชันที่ถูกต้องบนเซิร์ฟเวอร์ เว็บไซต์ทำงานภายใต้เวอร์ชัน 4.0 และแอสเซมบลีที่ถูกเรียกเพื่อรวบรวมสำหรับ 4.5 หลังจากติดตั้ง. NET Framework 4.5 และอัปเกรดเว็บไซต์เป็น 4.5 แล้วก็ใช้งานได้ดี


2
ปัญหาบางอย่างกับ. NET 3.5 เป้าหมายการคอมไพล์และติดตั้ง. NET 3. ฉันสงสัยจริงๆว่าทำไมไม่มีการเตือนขั้นพื้นฐานเมื่อเริ่มต้น ...
Martin Meeser

สำหรับ. NET Framework เวอร์ชัน> 4.0 คุณจะต้องระบุหน่วยการเก็บสต็อก (SKU) ซึ่งจะระบุรุ่นของ. NET Framework ที่แอปเป้าหมาย docs.microsoft.com/en-us/dotnet/framework/configure-apps/…
bgcode

21

การเริ่มต้นใหม่ Visual Studio แก้ไขให้ฉันแล้ว ฉันคิดว่ามันเกิดจากไฟล์ชุดเก่าที่ยังใช้งานอยู่และทำการ "Clean Build" หรือรีสตาร์ท VS ควรแก้ไข


5

ฉันมีสิ่งนี้เกิดขึ้นกับฉันด้วยไฟล์อ้างอิงในชุดเดียวกันไม่ใช่ dll แยก เมื่อฉันแยกไฟล์ออกจากโครงการแล้วรวมมันอีกครั้งทุกอย่างทำงานได้ดี


5

ฉันเพิ่งพบปัญหานี้กับโครงการ. NET MVC สาเหตุหลักมาจากแพ็กเกจ NuGet เวอร์ชันที่ขัดแย้งกัน ฉันมีทางออกสำหรับหลายโครงการ แต่ละโครงการมีแพ็คเกจ NuGet บางส่วน ในโครงการหนึ่งฉันมีแพ็คเกจ Enterprise Semantic Logging รุ่นหนึ่งและในอีกสองโครงการ (ที่อ้างอิงก่อน) ฉันมีแพ็คเกจรุ่นเก่ากว่า มันรวบรวมทั้งหมดโดยไม่มีข้อผิดพลาด แต่มันทำให้เกิดข้อผิดพลาด "ไม่พบวิธีการ" ที่ลึกลับเมื่อฉันพยายามใช้แพคเกจ

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


5

ตรวจสอบการอ้างอิงของคุณ!

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

ตัวอย่างเช่นถ้าคุณใช้ iTextSharp v.1.00.101 ในโครงการหนึ่งและคุณ NuGet หรืออ้างอิง iTextSharp v1.00.102 ที่อื่นคุณจะได้รับข้อผิดพลาดรันไทม์ประเภทนี้ที่จะไหลลงในโค้ดของคุณ

ฉันเปลี่ยนการอ้างอิงของฉันเป็น iTextSharp ในทั้ง 3 โครงการเพื่อชี้ไปที่ DLL เดียวกันและทุกอย่างทำงานได้


สำหรับฉันมันใช้งานได้ดีกับ Clean project และลบและเพิ่มการอ้างอิงอีกครั้ง
Honza P.

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

4

หากพัฒนาด้วยเซิร์ฟเวอร์ NuGet ของคุณเองตรวจสอบให้แน่ใจว่าเวอร์ชั่นชุดประกอบเหมือนกันทั้งหมด:

[assembly: AssemblyVersion("0.2.6")]
[assembly: AssemblyFileVersion("0.2.6")]
[assembly: AssemblyInformationalVersion("0.2.6")]

ฉันจะตรวจสอบได้อย่างไร
SerG

ฉันคิดว่าใน nupkg
sennett

4

ยัง .. พยายาม "ล้าง" โครงการหรือโซลูชันของคุณแล้วสร้างใหม่อีกครั้ง!


3

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


3

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

ตรวจสอบการอ้างอิงในโครงการอื่น ๆ ทั้งหมดก่อนที่จะสมมติว่าคุณจำเป็นต้องสร้าง / ล้าง / ปรับใช้โซลูชันของคุณใหม่


2

ในกรณีของฉันมันเป็นปัญหาการคัดลอก / วาง ฉันลงเอยด้วยตัวสร้างไพรเวตสำหรับโปรไฟล์การแม็พของฉัน:

using AutoMapper;

namespace Your.Namespace
{
    public class MappingProfile : Profile
    {
        MappingProfile()
        {
            CreateMap<Animal, AnimalDto>();
        }
    }
}

(จดบันทึก "สาธารณะ" ที่หายไปด้านหน้า ctor)

ซึ่งรวบรวมได้อย่างสมบูรณ์แบบดี แต่เมื่อ AutoMapper พยายามที่จะยกตัวอย่างโปรไฟล์ก็ไม่สามารถหาคอนสตรัคเตอร์ได้ (แน่นอน!)


@RenaudGauthier ฉันอาจจะเข้าใจผิดบางอย่างที่ Jon Skeets ตอบ แต่เขาบอกว่าคลาสที่ไม่มีโมดิฟายเออร์ในการเข้าถึงเป็นภายในและในความคิดเห็นที่แท้จริงเขาระบุว่า "ไม่มันถ้าคุณประกาศคอนสตรัคเตอร์และไม่ระบุการเข้าถึง เป็นส่วนตัวดูหัวข้อ 10.3.5 ของข้อมูลจำเพาะ C # " ดังนั้นฉันเดาผู้สร้างของฉันเป็นส่วนตัวหลังจากทั้งหมด? โปรดแก้ไขฉันหากฉันเข้าใจผิด และใช่ผู้ตอบรับของฉันผิดบริบทฉันมาที่นี่จากคำถามอื่น (ซึ่งไม่ได้ให้คำตอบสำหรับฉัน) ฉันจะเพิ่มลิงค์ไปยังคำตอบของฉันที่นั่นด้วย
DaBeSoft

คุณพูดถูกฉันไม่ได้ลบความคิดเห็นที่ไร้ประโยชน์
Renaud Gauthier

1

ฉันมีสถานการณ์ที่คล้ายกันที่ฉันได้รับข้อยกเว้นเดียวกันนี้ถูกโยน ฉันมีสองโครงการในโซลูชันแอปพลิเคชันเว็บของฉันชื่อเช่นเพื่อ DAL และ DAL.CustSpec โครงการ DAL มีวิธีการที่ชื่อว่า Method1 แต่ DAL.CustSpec ไม่มี โครงการหลักของฉันมีการอ้างอิงถึงโครงการ DAL และการอ้างอิงถึงโครงการอื่นที่ชื่อ AnotherProj โครงการหลักของฉันโทรไปที่ Method1 โครงการ AnotherProj มีการอ้างอิงถึงโครงการ DAL.CustSpec ไม่ใช่โครงการ DAL การกำหนดค่า Build มีทั้งโครงการ DAL และ DAL.CustSpec ที่กำหนดค่าให้สร้าง หลังจากสร้างทุกอย่างแล้วเว็บแอปพลิเคชั่นโครงการของฉันมีแอสเซมบลี AnotherProj และ DAL ในโฟลเดอร์ Bin อย่างไรก็ตามเมื่อฉันรันเว็บไซต์โฟลเดอร์ ASP.NET ชั่วคราวสำหรับเว็บไซต์นั้นมีแอสเซมบลี DAL.CustSpec ในไฟล์ไม่ใช่แอสเซมบลี DAL ด้วยเหตุผลบางอย่าง. แน่นอนเมื่อฉันวิ่งส่วนที่เรียกว่าวิธีที่ 1 ฉันได้รับข้อผิดพลาด "ไม่พบวิธีการ"

สิ่งที่ฉันต้องทำเพื่อแก้ไขข้อผิดพลาดนี้คือเปลี่ยนการอ้างอิงในโครงการ AnotherProj จาก DAL.CustSpec เป็น DAL เพียงลบไฟล์ทั้งหมดในโฟลเดอร์ชั่วคราวของไฟล์ ASP.NET จากนั้นทำการรันเว็บไซต์อีกครั้ง หลังจากนั้นทุกอย่างก็เริ่มทำงาน ฉันยังตรวจสอบให้แน่ใจว่าโครงการ DAL.CustSpec ไม่ได้ถูกสร้างขึ้นโดยยกเลิกการเลือกใน Build Configuration

ฉันคิดว่าฉันจะแบ่งปันสิ่งนี้ในกรณีที่มันช่วยคนอื่นในอนาคต


1

ฉันเจอสถานการณ์เดียวกันในเว็บไซต์ ASP.NET ของฉัน ฉันลบไฟล์ที่เผยแพร่แล้วรีสตาร์ท VS ใหม่ล้างและสร้างโครงการอีกครั้ง หลังจากเผยแพร่ครั้งต่อไปข้อผิดพลาดได้หายไป ...


1

ฉันแก้ไขปัญหานี้ด้วยการสร้างชั้นวางพร้อมการเปลี่ยนแปลงและเรียกใช้ 'scorch' ของเครื่องมือไฟฟ้า TFS ในพื้นที่ทำงานของฉัน ( https://visualstudiogallery.msdn.microsoft.com/f017b10c-02b4-4d6d-9845-58a06545627f ) จากนั้นฉันยกเลิกการลดการเปลี่ยนแปลงและคอมไพล์โครงการใหม่ วิธีนี้คุณจะล้าง 'ฝ่ายที่แขวนอยู่' ที่อาจอยู่ในพื้นที่ทำงานของคุณและจะเริ่มต้นใหม่ แน่นอนว่าคุณต้องใช้ TFS


1

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

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


1

การใช้ Costura.Fody 1.6 & 2.0:
หลังจากเสียเวลาไปกับการดูข้อผิดพลาดแบบเดียวกันกับวิธีแก้ปัญหาอื่น ๆ ที่ไม่สามารถใช้งานได้ฉันพบว่า DLL รุ่นเก่าที่ฉันฝังอยู่นั้นอยู่ในไดเรกทอรีเดียวกันฉันกำลังใช้งาน คอมไพล์ใหม่. exe จาก เห็นได้ชัดว่ามันมองหาไฟล์ในเครื่องในไดเรกทอรีเดียวกันก่อนจากนั้นมองเข้าไปยังห้องสมุดฝังตัว การลบ DLL เก่าทำงาน

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


1

ในกรณีของฉันมันเป็นโฟลเดอร์ที่มี DLLs เก่ากว่าซึ่งมีชื่อเดียวกันกับที่อ้างถึงในไฟล์. csproj ของฉันแม้ว่าเส้นทางจะถูกกำหนดอย่างชัดเจนพวกเขาถูกรวมเข้าด้วยกันดังนั้น DLLs เดียวกันหลายรุ่นจึงขัดแย้งกัน



1

ในกรณีของฉัน MissingMethodException มีไว้สำหรับวิธีการที่อยู่ในไฟล์เดียวกัน!

อย่างไรก็ตามฉันเพิ่งเพิ่มแพคเกจ NuGet ที่ใช้. Net Standard2 ไปยังโปรเจ็กต์การกำหนดเป้าหมาย 4.7.1 ของฉันซึ่งทำให้เกิดข้อขัดแย้งของเวอร์ชั่นสำหรับ System.Net.Http (4.7.1: เวอร์ชัน 4.0.0.0, แพ็คเกจ NuGet โดยใช้. NET มาตรฐาน 2 ต้องการ 4.2.0.0) นี้ดูเหมือนจะเป็นปัญหาที่รู้จักกันว่าควรจะดีกว่าใน 4.7.2 (ดูหมายเหตุ 2)

ฉันได้ใช้การเปลี่ยนเส้นทางที่มีผลผูกพันเช่นนี้ในโครงการอื่น ๆ ทั้งหมดของฉันเพราะมีข้อยกเว้นทันทีที่พยายามโหลด 4.2.0.0 ที่ฉันไม่มี:

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.0.0.0" />
  </dependentAssembly>

ยกเว้นในโครงการนี้ที่ดูเหมือนว่าจะพยายามโหลด System.Net.Http เฉพาะในขณะที่เรียกใช้ฟังก์ชั่นท้องถิ่นที่ใช้ System.Net.Http.HttpResponseMessage เป็นพารามิเตอร์หรือประเภทกลับ (พารามิเตอร์ในระหว่างการดีบักกลับประเภทเมื่อฉันเรียกใช้ การทดสอบโดยไม่มีการดีบั๊กก็แปลกไปเหมือนกัน) และแทนที่จะแสดงข้อความว่าไม่สามารถโหลดรุ่น System.Net.Http 4.2.0.0 ได้จะส่งคืนข้อยกเว้นนี้


0

สิ่งนี้เกิดขึ้นกับฉันโดยใช้ MVC4 และฉันตัดสินใจหลังจากอ่านเธรดนี้เพื่อเปลี่ยนชื่อวัตถุที่ทิ้งข้อผิดพลาด

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

ดังนั้น VS จึงอ้างอิงแบบจำลองที่ฉันเขียนใหม่โดยไม่ถามฉันว่าต้องการทำเช่นนั้นหรือไม่


0

ในกรณีที่มันช่วยทุกคนแม้ว่ามันจะเป็นปัญหาเก่าปัญหาของฉันก็ค่อนข้างแปลก

ฉันพบข้อผิดพลาดนี้ขณะใช้เจนกินส์

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


0

ฉันพบปัญหานี้และสิ่งที่ฉันมีสำหรับโครงการหนึ่งคือการใช้รายการซึ่งอยู่ในตัวอย่างเนมสเปซเซ็นเซอร์และอีกประเภทหนึ่งใช้อินเตอร์เฟส ISensorInfo คลาส Type1SensorInfo แต่คลาสนี้มีหนึ่งชั้นที่ลึกกว่าในเนมสเปซที่ Example.Sensors.Type1 เมื่อพยายาม deserialize Type1SensorInfo ลงในรายการจะมีข้อผิดพลาดเกิดขึ้น เมื่อฉันเพิ่มโดยใช้ Example.Sensors.Type1 ในอินเตอร์เฟส ISensorInfo จะไม่มีข้อยกเว้นอีกต่อไป!

namespace Example
{
    public class ConfigFile
    {
        public ConfigFile()
        {
            Sensors = new List<ISensorInfo<Int32>>();
        }
        public List<ISensorInfo<Int32>> Sensors { get; set; }
     }
   }
}

**using Example.Sensors.Type1; // Added this to not throw the exception**
using System;

namespace Example.Sensors
{
    public interface ISensorInfo<T>
    {
        String SensorName { get; }
    }
}

using Example.Sensors;

namespace Example.Sensors.Type1
{
    public class Type1SensorInfo<T> : ISensorInfo<T>
    {
        public Type1SensorInfo() 
    }
}

0

ฉันมีสิ่งเดียวกันเกิดขึ้นเมื่อฉันมีกระบวนการ MSBuild จำนวนมากที่ทำงานในพื้นหลังซึ่งล้มเหลวอย่างมีประสิทธิภาพ (มีการอ้างอิงถึงรหัสรุ่นเก่า) ฉันปิด VS และฆ่ากระบวนการ MSBuild ทั้งหมดใน process explorer แล้วคอมไพล์ใหม่


0

ฉันมีโครงการทดสอบที่อ้างอิง 2 โครงการอื่น ๆ ที่แต่ละรุ่นที่แตกต่างกันอ้างอิง (ในสถานที่แตกต่างกัน) ของ dll เดียวกัน สิ่งนี้ทำให้ผู้แปลสับสน


0

ในกรณีของฉัน spotify.exe ใช้พอร์ตเดียวกันซึ่งโครงการ web api ของฉันต้องการใช้กับเครื่องพัฒนา หมายเลขพอร์ตคือ 4381

ฉันเลิก Spotify และทุกอย่างทำงานได้ดีอีกครั้ง :)



0

ในกรณีของฉันไม่มีการเปลี่ยนแปลงรหัสเลยและทันใดนั้นเซิร์ฟเวอร์ตัวใดตัวหนึ่งเริ่มได้รับสิ่งนี้และมีข้อยกเว้นนี้เท่านั้น (เซิร์ฟเวอร์ทั้งหมดมีรหัสเดียวกัน แต่มีเพียงคนเดียวที่เริ่มมีปัญหา):

System.MissingMethodException: Method not found: '?'.

ซ้อนกัน:

Server stack trace: 
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at myAccountSearch.AccountSearch.searchtPhone(searchtPhoneRequest request)
   at myAccountSearch.AccountSearchClient.myAccountSearch.AccountSearch.searchtPhone(searchtPhoneRequest request)
   at myAccountSearch.AccountSearchClient.searchtPhone(String ID, String HashID, searchtPhone Phone1)
   at WS.MyValidation(String AccountNumber, String PhoneNumber)

ปัญหาที่ฉันเชื่อว่าเกิดความเสียหาย AppPool - เรามีการรีไซเคิล AppPool อัตโนมัติที่เกิดขึ้นทุกวันเวลา 3:00 น. และปัญหาเริ่มต้นที่ 03:00 และสิ้นสุดลงด้วยตนเองในเวลา 3:00 น. ในวันถัดไป


0

ต้องเป็นข้อบกพร่องอ้างอิงจาก Microsoft

ฉันทำความสะอาดสร้างใหม่ในห้องสมุดทั้งหมดของฉันและยังคงมีปัญหาเดียวกันและไม่สามารถแก้ไขได้

สิ่งที่ฉันทำคือปิดแอปพลิเคชัน Visual Studio และเปิดอีกครั้ง นั่นเป็นการหลอกลวง

มันน่าผิดหวังอย่างมากที่ปัญหาแบบง่าย ๆ นั้นอาจใช้เวลานานในการแก้ไขเพราะคุณคงไม่คิดว่ามันจะเป็นอะไรแบบนั้น


0

Microsoft.Net.Compilers.2.10.0ในกรณีของโครงการของฉันได้รับการอ้างอิง เมื่อฉันเปลี่ยนMicrosoft.Net.Compilers.2.7.0เป็นข้อผิดพลาดก็หายไป ช่างเป็นข้อผิดพลาดที่ลึกลับด้วยสาเหตุหลายอย่าง

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