Была предпринята попытка загрузить программу с неверным форматом.(исключение из HRESULT: 0x8007000b)
Всем Привет,
Я пытался прочитать emirates id с помощью кард-ридера после этого блога href="https://www.codeproject.com/Articles/1265249/Read-Emirates-ID-in-a-Web-Application">прочитайте Emirates ID в веб-приложении. Однако я получал ошибку
"Была предпринята попытка загрузить программу с неправильным форматом" при запуске консольного приложения в строке "readerManager.EstablishContext()".
Я перепробовал все решения в интернете, но мне ничего не помогло . Кто-нибудь может мне помочь, пожалуйста . Любая помощь будет очень признательна . Заранее спасибо.
Что я уже пробовал:
программы.в CS
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Forms; namespace EIDSampleConsole { class Program { [STAThread] static void Main(string[] args) { var model = Controller.CreateFromEIDReader(); if (model.HasData) { Clipboard.SetText(Newtonsoft.Json.JsonConvert.SerializeObject(model)); } else Clipboard.SetText("NO DATA"); } } }
контроллер.в CS
using EmiratesId.AE.PublicData; using EmiratesId.AE.ReadersMgt; using EmiratesId.AE.Utils; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EIDSampleConsole { public class Controller { public static EIDModel CreateFromEIDReader() { EIDModel model = new EIDModel(); ReaderManagement readerManager; PCSCReader reader; try { readerManager = new ReaderManagement(); readerManager.EstablishContext(); readerManager.DiscoverReaders(); //System.Windows.Forms.MessageBox.Show("after reader discover"); if (readerManager.Readers.Length > 0) { reader = readerManager.Readers[0]; if (reader.IsConnected()) { //System.Windows.Forms.MessageBox.Show("after connection to reader, before getting data"); PublicDataFacade pDataFacade = reader.GetPublicDataFacade(); CardHolderPublicData pData = pDataFacade.ReadPublicData(true, true, true, true, false); CardHolderPublicDataEx pDataEx = pDataFacade.ReadPublicDataEx(true, false, true, true, false, true, true, true); model.EIDNumber = Utils.ByteArrayToUTF8String(pData.IdNumber); model.Phone = Utils.ByteArrayToUTF8String(pDataEx.HomeAddress.ResidentPhoneNumber); model.Mobile = Utils.ByteArrayToUTF8String(pDataEx.HomeAddress.MobilePhoneNumber); model.Email = Utils.ByteArrayToUTF8String(pDataEx.HomeAddress.Email); model.Pobox = Utils.ByteArrayToUTF8String(pDataEx.HomeAddress.POBox); model.Emirate = Utils.ByteArrayToUTF8String(pDataEx.HomeAddress.EmirateDescriptionEnglish); model.City = Utils.ByteArrayToUTF8String(pDataEx.HomeAddress.CityDescriptionEnglish); model.Area = Utils.ByteArrayToUTF8String(pDataEx.HomeAddress.AreaDescriptionEnglish); model.Sex = Utils.ByteArrayToUTF8String(pData.Sex); model.Occupation = Utils.ByteArrayToUTF8String(pData.Occupation); model.Occupation = Utils.ByteArrayToUTF8String(pDataEx.OccupationEnglish); model.Occupation = Utils.ByteArrayToUTF8String(pDataEx.OccupationArabic); model.Occupation = Utils.ByteArrayToUTF8String(pDataEx.OccupationTypeEnglish); model.Occupation = Utils.ByteArrayToUTF8String(pDataEx.OccupationTypeArabic); model.ResidencyType = Utils.ByteArrayToHex(pData.ResidencyType, ""); model.DOB = Utils.ByteArrayToStringDate(pData.DateOfBirth).Replace("/", "-"); model.ResidencyExpiry = Utils.ByteArrayToStringDate(pData.ResidencyExpiryDate); model.Name = RemoveComma(Utils.ByteArrayToUTF8String(pData.FullName)); model.NameAr = RemoveComma(Utils.ByteArrayToUTF8String(pData.ArabicFullName)); model.Title = Utils.ByteArrayToUTF8String(pData.Title); model.TitleAr = Utils.ByteArrayToUTF8String(pData.ArabicTitle); model.NationalityID = (Utils.ByteArrayToUTF8String(pData.Nationality)); model.PassportNumber = Utils.ByteArrayToUTF8String(pDataEx.PassportNumber); model.SponsorType = Utils.ByteArrayToHex(pData.SponsorType, ""); model.SponsorNumber = Utils.ByteArrayToHex(pData.SponsorNumber, ""); model.SponsorName = Utils.ByteArrayToUTF8String(pData.SponsorName); model.CompanyName = Utils.ByteArrayToUTF8String(pDataEx.CompanyNameEnglish); if (pData.ResidencyNumber != null) model.ResidencyNumber = Utils.ByteArrayToUTF8String(pData.ResidencyNumber).Trim(); model.PhotoPath = @"C:\Temp\EID_PHO_" + model.EIDNumber.Replace(" ", "").Trim() + ".jpg"; model.Photo = pData.Photography; if (pData.Photography != null) { System.IO.MemoryStream ms = new System.IO.MemoryStream(pData.Photography); System.Drawing.Image image = System.Drawing.Image.FromStream(ms); image.Save(model.PhotoPath, System.Drawing.Imaging.ImageFormat.Jpeg); } model.Signature = pDataEx.HolderSignatureImage; if (pDataEx.HolderSignatureImage != null) { System.IO.MemoryStream ms = new System.IO.MemoryStream(pDataEx.HolderSignatureImage); System.Drawing.Image image = System.Drawing.Image.FromStream(ms); image.Save(@"C:\Temp\EID_SIG_" + model.EIDNumber.Replace(" ", "").Trim() + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg); } model.HasData = true; } } } catch (Exception ex) { model.HasData = false; Console.WriteLine("ERROR: " + ex.Message); } return model; } public static string RemoveComma(string value) { string result = ""; string[] valuelist = value.Split(new Char[] { ',' }); foreach (string v in valuelist) { if (v.Trim().Length > 0) result += v.Trim() + " "; } return result.Trim(); } } }
Richard Deeming
Эта ошибка обычно предполагает, что вы пытаетесь загрузить 32-разрядную сборку в 64-разрядное приложение или наоборот.
F-ES Sitecore
Вы погуглили ошибку и прошли через обычные причины этой проблемы?
Member 12926744
Перепробовал все в google, но ничего не смогло решить эту проблему .
Richard MacCutchan
Попробуйте воспользоваться форумом сообщений в конце статьи. Может быть, автор сможет помочь.