การแก้ไขปัญหา BadImageFormatException


109

ฉันมีบริการ Windows ที่เขียนใน C # โดยใช้ Visual Studio 2010 และกำหนดเป้าหมายไปที่. NET Framework 4 แบบเต็มเมื่อฉันเรียกใช้จากการดีบักการสร้างบริการจะทำงานตามที่คาดไว้ อย่างไรก็ตามเมื่อฉันเรียกใช้จากรุ่น Release ฉันจะได้รับ System.BadImageFormatException (รายละเอียดด้านล่าง) ฉันค้นหาทางอินเทอร์เน็ตเพื่อหาวิธีแก้ปัญหา แต่จนถึงตอนนี้ทุกสิ่งที่ฉันพบก็ไม่ได้ช่วยฉันหาทางแก้ปัญหา

ปัญหานี้เกิดขึ้นทั้งในระบบ Windows 7 64 บิต (dev) และ Windows XP SP3 32 บิต (เป้าหมาย)

นี่คือสิ่งที่ฉันได้ลองทำแล้ว:

  • การตั้งค่าการสร้างที่ได้รับการยืนยันเช่นเป้าหมายแพลตฟอร์มจะเหมือนกันทั้งหมด (x86)
  • ใช้ peverify กับอ็อพชัน / verbose เพื่อให้แน่ใจว่าไบนารีแอสเซมบลีถูกต้อง
  • ใช้ fuslogvw เพื่อค้นหาปัญหาในการโหลด
  • ใช้ CheckAsm เพื่อค้นหาไฟล์หรือชุดประกอบที่หายไป

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

System.BadImageFormatException ไม่สามารถจัดการได้
  ข้อความ = ไม่สามารถโหลดไฟล์หรือแอสเซมบลี 'XxxDevices, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null' หรือหนึ่งในการอ้างอิง มีความพยายามในการโหลดโปรแกรมที่มีรูปแบบไม่ถูกต้อง
  ที่มา = XxxDevicesService
  FileName = XxxDevices เวอร์ชัน = 1.0.0.0 วัฒนธรรม = เป็นกลาง PublicKeyToken = null
  FusionLog = ตัวจัดการแอสเซมบลีที่โหลดจาก: C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ clr.dll
ทำงานภายใต้ปฏิบัติการ c: \ Dev \ TeamE \ bin \ Release \ XxxDevicesService.vshost.exe
- บันทึกข้อผิดพลาดโดยละเอียดดังต่อไปนี้ 

=== ข้อมูลสถานะก่อนผูก ===
บันทึก: ผู้ใช้ = XXX
LOG: DisplayName = XxxDevices เวอร์ชัน = 1.0.0.0 วัฒนธรรม = เป็นกลาง PublicKeyToken = null
 (ระบุครบถ้วน)
บันทึก: Appbase = ไฟล์: /// c: / Dev / TeamE / bin / Release /
บันทึก: PrivatePath เริ่มต้น = NULL
การเรียกแอสเซมบลี: XxxDevicesService เวอร์ชัน = 1.0.0.0 วัฒนธรรม = เป็นกลาง PublicKeyToken = null
===
LOG: การผูกนี้เริ่มต้นในบริบทการโหลดเริ่มต้น
บันทึก: การใช้ไฟล์คอนฟิกูเรชันของแอปพลิเคชัน: c: \ TeamE \ bin \ Release \ XxxDevicesService.vshost.exe.Config
LOG: การใช้ไฟล์การกำหนดค่าโฮสต์: 
บันทึก: การใช้ไฟล์การกำหนดค่าเครื่องจาก C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ config \ machine.config
LOG: นโยบายไม่ถูกนำไปใช้กับการอ้างอิงในขณะนี้ (การผูกแอสเซมบลีแบบส่วนตัวกำหนดเองบางส่วนหรือตามตำแหน่งที่ตั้ง)
LOG: กำลังพยายามดาวน์โหลดไฟล์ URL ใหม่: /// c: /TeamE/bin/Release/XxxDevices.DLL
ข้อผิดพลาด: ล้มเหลวในการตั้งค่าการประกอบ (hr = 0x8007000b) สิ้นสุดการตรวจสอบแล้ว

  StackTrace:
       ที่ XxxDevicesService.Program.Main (String [] args)
       ที่ System.AppDomain._nExecuteAssembly (แอสเซมบลี RuntimeAssembly, String [] args)
       ที่ Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly ()
       ใน System.Threading.ExecutionContext.Run (ExecutionContextecutionContext การเรียกกลับ ContextCallback สถานะวัตถุบูลีนละเว้นSyncCtx)
       ใน System.Threading.ExecutionContext.Run (ExecutionContextecutionContext, ContextCallback callback, Object state)
       ใน System.Threading.ThreadHelper.ThreadStart ()
  InnerException: 
c#  .net  exception 

คุณผสมเนทีฟโค้ด /. net หรือเปล่า
Keith Nicholas

1
คุณมาถูกทางแล้วที่ข้อยกเว้นนี้เกี่ยวข้องกับความแตกต่างของ x86 / x64 บิต ฉันถือว่านี่ไม่ใช่เว็บแอปพลิเคชันใช่ไหม นอกจากนี้การประกอบคือXxxDevicesServiceอะไร? คอมไพล์สำหรับแพลตฟอร์มเฉพาะ (เช่น 32 บิต) หรือไม่ ถ้าเป็นเช่นนั้นคุณต้องคอมไพล์แพลตฟอร์มของคุณเป็น 32 บิต
Reddog

คำตอบ:


122

การตั้งค่าการสร้างที่ได้รับการยืนยันเช่นเป้าหมายแพลตฟอร์มจะเหมือนกันทั้งหมด (x86)

นั่นไม่ใช่สิ่งที่บันทึกข้อขัดข้องกล่าว:

ตัวจัดการแอสเซมบลีโหลดจาก: C: \ Windows \ Microsoft.NET \ Framework64

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


6
และในขณะที่คุณกำลังตรวจสอบโปรเจ็กต์ EXE ให้ตรวจสอบทั้ง Debug และ Release : /
chris

44

หลังจากที่ฉันหยุดก้มหน้าบนโต๊ะทำงานโดยคิดถึงทั้งสัปดาห์ฉันใช้เวลาแก้ปัญหานี้ฉันกำลังแบ่งปันสิ่งที่ได้ผลสำหรับฉัน ฉันมี Win7 64 บิตไคลเอ็นต์ Oracle 32 บิตและตั้งค่าโครงการ MVC 5 ของฉันให้ทำงานบนแพลตฟอร์ม x86 เนื่องจากความบิตของ Oracle ฉันยังคงได้รับข้อผิดพลาดเดิม ๆ :

ไม่สามารถโหลดไฟล์หรือแอสเซมบลี 'Oracle.DataAccess' หรือหนึ่งในการอ้างอิง มีความพยายามในการโหลดโปรแกรมที่มีรูปแบบไม่ถูกต้อง

ฉันโหลดแพ็คเกจ NuGet ใหม่ฉันใช้สำเนาของ DLL ที่ใช้ได้กับคนอื่นในแอพต่าง ๆ ฉันตั้งค่า codebase ในแอสเซมบลีที่เกี่ยวข้องให้ชี้ไปที่โฟลเดอร์ bin ของโปรเจ็กต์ฉันลอง CopyLocal ว่าเป็นจริงหรือเท็จฉันลองทุกอย่างแล้ว ในที่สุดฉันก็ทำอย่างอื่นมากพอฉันต้องการตรวจสอบรหัสของฉันและในฐานะผู้รับเหมารายใหม่ฉันไม่ได้ตั้งค่าการโค่นล้ม ในขณะที่กำลังหาวิธีเชื่อมโยงเข้ากับ VS ฉันก็สะดุดคำตอบ สิ่งที่ฉันพบว่าได้ผลคือการยกเลิกการเลือกตัวเลือก "ใช้ IIS Express สำหรับเว็บไซต์และโครงการเวอร์ชัน 64 บิต" ภายใต้ส่วนโครงการและโซลูชัน => โครงการเว็บในเมนูเครื่องมือ => ตัวเลือก


3
ประหยัดชีวิต !! ขอบคุณ. สำหรับฉันฉันต้องตรวจสอบสิ่งนี้จริงๆเนื่องจากโปรเจ็กต์ของฉันมีประสิทธิภาพ x64 ขอบคุณอีกครั้ง!!!
viper

หลังจากความช่วยเหลือทั้งหมดที่ฉันได้รับที่นี่ฉันดีใจมากที่สามารถจ่ายบางส่วนไปข้างหน้าได้!
Joseph Morgan

3
สำหรับผู้ใช้ IIS ท้องถิ่นตรวจสอบให้แน่ใจว่ายน้ำแอปของคุณ "เปิดใช้งานโปรแกรม 32 บิต" (ภายใต้การตั้งค่าขั้นสูง) ตั้งทรู
Eric Eskildsen

ส่วนเสริมของความคิดเห็นของ @ EricEskildsen ด้านบนเกี่ยวกับ "เปิดใช้งานแอปพลิเคชัน 32 บิต" ในกลุ่มแอปพลิเคชันแม้ว่าคุณจะไม่ต้องการทำเช่นนั้นในสภาพแวดล้อมจริงการพลิกสวิตช์นั้นสามารถให้เบาะแสเพิ่มเติมว่าคุณกำลังเผชิญหน้ากับ 32 ปัญหา -bit / 64-bit หรืออย่างอื่น
ผู้ใช้

ตูม! นั่นแหล่ะ
itslittlejohn

21

สิ่งที่ฉันพบคือการตรวจสอบตัวเลือก "ใช้ IIS Express สำหรับเว็บไซต์และโครงการเวอร์ชัน 64 บิต" ในส่วนโครงการและโซลูชัน => โครงการเว็บภายใต้เมนูเครื่องมือ => ตัวเลือก


คุณคือผู้ช่วยให้รอด +1
Amit Kumar

ฉันติดตั้ง VS ใหม่และกำลังแก้ไขปัญหานี้ (ขอบคุณ - วิธีนี้ใช้ได้ผล) คุณธรรมของเรื่องราวสำหรับฉันคือถ้าฉันรู้ว่าฉันไม่ได้เปลี่ยนรหัสใด ๆ เพื่อเริ่มต้นด้วยบางทีฉันควรดูการกำหนดค่าของ VS ก่อน
taylorswiftfan

กล่องกาเครื่องหมาย @Lucy 'ใช้ IIS Express รุ่น 64 บิตสำหรับเว็บไซต์และโครงการ' ถูกปิดใช้งาน
k_kumar

ช่วยบอกลูซี่
k_kumar

12

โดยทั่วไปสามารถเกิดขึ้นได้เมื่อคุณเปลี่ยนกรอบเป้าหมายของ. csproj และเปลี่ยนกลับเป็นสิ่งที่คุณเริ่มต้น

ตรวจสอบให้แน่ใจว่า 1 ถ้าได้รับการสนับสนุน Runtime version = "runtime ที่แตกต่างจาก cs ​​project target" ภายใต้แท็กเริ่มต้นใน app.config

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

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


ฉันเจอปัญหาที่คล้ายกันและคำตอบของคุณคือทางออกสำหรับฉัน app.config ของฉันมีรันไทม์ที่รองรับต่างกัน
Krisztián Kis

9

ฉันมีปัญหาเดียวกันแม้ว่าฉันจะมี Windows 7 64 บิตและฉันกำลังโหลด 64 บิต DLL b / c ในคุณสมบัติโครงการ สร้างฉันได้เลือก "ชอบ 32 บิต" (ไม่รู้ว่าทำไมถึงตั้งเป็นค่าเริ่มต้น) เมื่อฉันยกเลิกการเลือกนั้นทุกอย่างก็ดำเนินไปด้วยดี


1
เหมือนกันที่นี่ นี่เป็นเคล็ดลับ อ้างถึงแอสเซมบลี 64 บิตและคอนฟิกูเรชันบิลด์ที่ใช้งานอยู่ถูกตั้งค่าเป็นซีพียูใด ๆ แต่เนื่องจากการตั้งค่านี้ "ชอบ 32 บิต" จึงสันนิษฐานได้ว่ามีการใช้ 32 บิตในการรันแอปพลิเคชันและทำให้เกิดปัญหา
Bernoulli IT

เลือกCPU ใด ๆแทนที่จะเป็นx86ในโหมด Debug และทำงานได้อย่างมีเสน่ห์
Cardi DeMonaco Jr

7

คุณยังสามารถได้รับข้อยกเว้นนี้เมื่อแอปพลิเคชันของคุณกำหนดเป้าหมาย. NET Framework 4.5 (ตัวอย่าง) และคุณมี app.config ต่อไปนี้:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727" />
    <supportedRuntime version="v4.0" />
  </startup>
</configuration>

เมื่อพยายามเปิดการดีบักของแอปพลิเคชันคุณจะได้รับ BadImageFormatException

การลบบรรทัดที่ประกาศเวอร์ชัน v2.0 จะเป็นการล้างข้อผิดพลาด

เมื่อเร็ว ๆ นี้ฉันมีปัญหานี้เมื่อฉันพยายามเปลี่ยนแพลตฟอร์มเป้าหมายจากโครงการ. NET 2.0 เก่าเป็น. NET 4.5


7

พื้นหลัง

เราเริ่มรับสิ่งนี้ในวันนี้เมื่อเราเปลี่ยนบริการ WCF จาก AnyCPU เป็น x64 บนเซิร์ฟเวอร์ Windows 2012 R2 ที่ใช้ IIS 6.2

ก่อนอื่นเราตรวจสอบแอสเซมบลีที่อ้างอิงเพียง 10 ครั้งเพื่อให้แน่ใจว่าไม่ใช่ x86 dll จากนั้นเราตรวจสอบแอปพลิเคชันพูลหลายครั้งเพื่อให้แน่ใจว่าไม่ได้เปิดใช้งานแอปพลิเคชัน 32 บิต

ด้วยความตั้งใจฉันพยายามสลับการตั้งค่า ปรากฎว่าพูลแอปพลิเคชันใน IIS เริ่มต้นเป็นค่าEnable 32-Bit Applicationsเป็น False แต่ IIS ไม่สนใจมันบนเซิร์ฟเวอร์ของเราด้วยเหตุผลบางประการและเรียกใช้บริการของเราในโหมด x86 เสมอ

สารละลาย

  • เลือกแอปพูล
  • เลือกค่าเริ่มต้นตั้งแอพลิเคชัน ...หรือการตั้งค่าขั้นสูง ...
  • เปลี่ยนEnable 32-Bit Applicationsเป็น True
  • คลิกตกลง
  • เลือกSet Application Pool Defaults ...หรือAdvanced Settings ...อีกครั้ง
  • เปลี่ยนEnable 32-Bit Applicationsกลับเป็น False
  • คลิกตกลง

4

ฉันแก้ไขปัญหานี้โดยเปลี่ยนเว็บแอปให้ใช้ "กลุ่มแอปพลิเคชัน" อื่น


4

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

ฉันลบการกำหนดค่าแอปเพิ่มเติมและใช้งานได้


แก้ไขให้ฉัน App.config ของฉันตั้งค่าแอป. NET 4.5.1 ของฉันเป็น 2.0 CLR!
Jared Thirsk

4

Target build x64 Target Server Hosting IIS 64 Bit

หากบิลด์แอปพลิเคชันกำหนดเป้าหมายไปที่ระบบปฏิบัติการ 64 บิตจากนั้นบนเซิร์ฟเวอร์ 64 บิตที่โฮสต์ IIS ให้ตั้งค่าเปิดใช้งานแอปพลิเคชัน 32 บิตบนพูลแอปที่เรียกใช้เว็บไซต์ / เว็บแอปพลิเคชันเป็นเท็จ

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


2

กำหนดพูลแอปพลิเคชันที่แอปพลิเคชันใช้และตั้งค่าคุณสมบัติโดยการตั้งค่าเปิดใช้งานแอปพลิเคชัน 32 บิตเป็น True ซึ่งสามารถทำได้ผ่านการตั้งค่าล่วงหน้าของพูลแอปพลิเคชัน


2

เมื่อสร้างแอปสำหรับแพลตฟอร์ม 32 บิตหรือ 64 บิต (ประสบการณ์ของฉันคือ Visual Studio 2010) อย่าพึ่งพาเครื่องมือจัดการการกำหนดค่าเพื่อตั้งค่าแพลตฟอร์มที่ถูกต้องสำหรับปฏิบัติการ แม้ว่า CM จะมี x86 ที่เลือกไว้สำหรับแอปพลิเคชันให้ตรวจสอบคุณสมบัติของโปรเจ็กต์ (แท็บ Build): อาจยังคงระบุว่า "CPU ใด ๆ " ที่นั่น และหากคุณเรียกใช้งาน "CPU ใด ๆ " บนแพลตฟอร์ม 64 บิตมันจะทำงานในโหมด 64 บิตและปฏิเสธที่จะโหลด DLL ที่มาพร้อมกับคุณซึ่งสร้างขึ้นสำหรับแพลตฟอร์ม x86


1

ลบการพึ่งพา System.Runtime ใน Web.Config ของคุณมันใช้งานได้สำหรับฉัน:

<dependentAssembly>
        <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.10.0" newVersion="4.0.10.0" />
</dependentAssembly>

สำหรับฉันมันคือSystem.Net.Http. ขอบคุณสำหรับมัน
Snickbrack

1

สำหรับ. NET Coreมีจุดบกพร่องของ Visual Studio 2017ที่อาจทำให้หน้า Build คุณสมบัติของโปรเจ็กต์แสดงเป้าหมายแพลตฟอร์มที่ไม่ถูกต้อง เมื่อคุณพบว่าปัญหาคือวิธีแก้ปัญหาก็ค่อนข้างง่าย คุณสามารถเปลี่ยนเป้าหมายเป็นค่าอื่นแล้วเปลี่ยนกลับได้

หรือคุณสามารถเพิ่มตัวระบุรันไทม์ให้กับ. csproj หากคุณต้องการให้. exe ของคุณทำงานเป็น x86 เพื่อให้สามารถโหลด x86 เนทีฟ DLL ได้ให้เพิ่มองค์ประกอบนี้ภายใน aPropertyGroup :

<RuntimeIdentifier>win-x86</RuntimeIdentifier>

สถานที่ที่ดีในการวางสิ่งนี้คือหลังองค์ประกอบTargetFrameworkหรือTargetFrameworks


1

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

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

Closed VS เปิดตัวจัดการงานค้นหาและยกเลิกอินสแตนซ์ VBCSCompiler ทั้งหมดและลบโฟลเดอร์ "bin" เพื่อกลับไปยังจุดที่ฉันอยู่

อ้างอิง: https://developercommunity.visualstudio.com/content/problem/117596/vbcscompilerexe-process-stays-runing-after-exiting.html


วิธีแก้ปัญหาของฉันคือการลบไดเร็กทอรี bin และ debug ทั้งหมด
gabnaim

0

สำหรับใครก็ตามที่มาถึงที่นี่ในเวลาต่อมา ...
สำหรับโซลูชันเดสก์ท็อปฉันได้รับBadImageFormatExceptionข้อยกเว้น
ตัวเลือกการสร้างของโครงการทั้งหมดใช้ได้ดี (ทั้งหมดx86 ) แต่โครงการโซลูชัน StartUp ถูกเปลี่ยนเป็นโครงการอื่น (โครงการไลบรารีคลาส)

การเปลี่ยนโครงการ StartUp เป็นโครงการแอปพลิเคชันดั้งเดิม (.exe) เป็นวิธีแก้ปัญหาในกรณีของฉัน


0

เมื่อฉันประสบปัญหานี้สิ่งต่อไปนี้จะแก้ไขให้ฉัน:

ฉันเรียก OpenCV dll จากภายใน exe อื่น dll ของฉันไม่มี dll opencv ที่จำเป็นอยู่แล้วเช่น highgui, features2d และอื่น ๆ ที่มีอยู่ในโฟลเดอร์ของไฟล์ exe ของฉัน ฉันคัดลอกสิ่งเหล่านี้ไปยังไดเร็กทอรีของ exe project ของฉันและมันก็ใช้งานได้ทันที


0

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

  1. ตรวจสอบให้แน่ใจว่า AppPool ที่ไซต์ของคุณกำลังทำงานอยู่นั้นได้ตั้งค่า "Enable 32-Bit Applications" เป็น False
  2. ตรวจสอบให้แน่ใจว่าคุณใช้เวอร์ชันที่ถูกต้องสำหรับแพลตฟอร์มของคุณ
  3. หากคุณได้รับข้อผิดพลาดนี้บนเว็บไซต์ตรวจสอบให้แน่ใจว่าพูลแอปพลิเคชันของคุณถูกตั้งค่าให้ทำงานในโหมดที่ถูกต้อง (ไซต์ 3.0 ควรทำงานในโหมด 64 บิต)
  4. คุณควรตรวจสอบให้แน่ใจด้วยว่าการอ้างอิงไปยังแอสเซมบลีนั้นใน Visual Studio ชี้ไปที่ไฟล์ที่ถูกต้องในโฟลเดอร์แพ็กเกจ
  5. ตรวจสอบให้แน่ใจว่าคุณมีเวอร์ชันที่ถูกต้องของ dll ที่ติดตั้งใน GAC สำหรับไซต์ 2.0
  6. นอกจากนี้ยังอาจเกิดจาก WSODLibs ได้รับการโปรโมตด้วยโปรเจ็กต์เว็บ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.