首页 > 解决方案 > System.BadImageFormatException:试图加载格式不正确的程序。(来自 HRESULT 的异常:0x8007000B)

问题描述

我是这里的新手....我的问题是当我使用 VS2019 运行此代码时,没有任何错误。使用 IIS 管理器发布它后,当我单击浏览时导致错误。

在此处输入图像描述

接下来,由于我的PC使用的是64位,所以我更改了设置Platform target x64,但仍然无法解决问题。

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

using System;
using System.Web.UI;
using MySql.Data.MySqlClient;
using System.Net;
namespace Canteen_UAT
{
    public partial class Order : Page
    {
        MySqlConnection con = new MySqlConnection("Data Source =LocalHost;user id=root;password=removed;persistsecurityinfo=True;database=posdbms_uat");
        private IntPtr icdev;
        private short st;

        protected void Page_Load(object sender, EventArgs e)
        {
            DateTime CurrentDate = DateTime.Now;
            DateTime sixhoursbefore = CurrentDate.AddHours(-5.50);
            Date.Text = sixhoursbefore.ToString("yyyy-MM-dd");
            if (Session["Username"] == null)
            {
                Response.Redirect("Login.aspx?url=" + Server.UrlEncode(Request.Url.AbsoluteUri));
            }
            else if (Session["Username"] != null)
            {
                Master.GetLabel.Visible = true;
                Master.getLoginBtn.Visible = false;
                Master.GetLabel.Text = "Welcome " + Session["Username"];
                Master.getlogoutbtn.Visible = true;
                Master.getregbtn.Visible = false;
                MifareCard.Focus();
            }
            else if (Calc_results.Text == "")
            {
                Calc_results.Focus();
            }
            else
            {
                Button10.Focus();
            }

            IPHostEntry host;
            string ipAdd = "?";
            host = Dns.GetHostEntry(Dns.GetHostName());

            foreach (IPAddress ip in host.AddressList)
            {
                if (ip.AddressFamily.ToString() == "InterNetwork")
                {
                    ipAdd = ip.ToString();
                }
            }
            ErrorMsg0.Text = ipAdd;            

            // USB Mifarecard Reader Connection
            icdev = Reader.hc_init(100,9600);
            
            if(icdev.ToInt32() <= 0)
            {
                Label11.Text = "Reader connect failed " + icdev.ToString();
            }
            else
            {
                Label11.Text = "Reader connected";
            }                
        }

        protected void Cancel_Btn(object sender, EventArgs e)
        {
            String confirmValue = Request.Form["confirm_value"];
            if (confirmValue == "Yes")
            {
                Response.Redirect("Order.aspx");
            }
        }

        protected void Checkout_Click(object sender, EventArgs e)
        {
            String confirmValue = Request.Form["confirm_value"];
            if (confirmValue == "Yes")
            {
                MySqlConnection con = new MySqlConnection("Data Source =192.168.71.155;user id=root;password=removed;persistsecurityinfo=True;database=posdbms_uat");
                con.Open();
                MySqlCommand com = new MySqlCommand("Update posdbms_uat.order set OrderAmount = OrderAmount +'" + Calc_results.Text + "',  NetAmountPayable = NetAmountPayable + '" + Amount_text.Text + "', Subsidy_Remain = '" + Subsidy_Balance.Text + "'where OrderID ='" + OrderID.Text + "'", con);
                com.ExecuteNonQuery();
                con.Close();
                Response.Redirect("Order.aspx");
            }
        }

        //Retrieve Mifare Care Number: Add by Tan Mei Synn on 8th July 2021
        protected void Scan_Click(object sender, EventArgs e)
        {
            ulong snr;

            if (MifareCard.Text == string.Empty)
            {

                st = Reader.rf_card(icdev, 1, out snr);

                if (st == 0)
                {
                    Reader.dv_beep(icdev, 15);
                    MifareCard.Text = snr.ToString();
                }
            }
            MySqlConnection con = new MySqlConnection("Data Source =192.168.71.155;user id=root;password=removed;persistsecurityinfo=True;database=posdbms_uat");
            con.Open();

            if (MifareCard.Text != "")
            {
                MySqlCommand cmd = new MySqlCommand("Select CustomerName, CustomerSurname, Subsidy_Remain, OrderID, employeeid from posdbms_uat.order where MifareCard_No = @ID and OrderDate = @Date", con);
                cmd.Parameters.AddWithValue("@ID", MifareCard.Text);
                cmd.Parameters.AddWithValue("@Date", Date.Text);

                MySqlDataReader sdr = cmd.ExecuteReader();
                if (sdr.HasRows)
                {
                    while (sdr.Read())
                    {
                        surname.Text = sdr.GetValue(0).ToString();
                        givenName.Text = sdr.GetValue(1).ToString();
                        Subsidy.Text = sdr.GetValue(2).ToString();
                        OrderID.Text = sdr.GetValue(3).ToString();
                        EmployeeID.Text = sdr.GetValue(4).ToString();
                        Calc_results.Focus();
                    }
                }
                else
                {
                    Label11.Text = "No Records found for Employee Number: " + EmployeeID.Text.ToString();
                }
            }
            con.Close();
        }

        protected void Calc_results_TextChanged(object sender, EventArgs e)
        {
            double a, b, c;
            double.TryParse(Calc_results.Text, out a);
            double.TryParse(Subsidy.Text, out b);

            if (a < b)
            {
                c = Math.Abs(a - b);
                Subsidy_Balance.Text = c.ToString();
                Amount_text.Text = "0";
            }
            else
            {
                c = a - b;
                Subsidy_Balance.Text = "0";
                Amount_text.Text = c.ToString();
            }
            Button10.Focus();
        }
    }
}

此代码由供应商提供,用于连接 Mifarecared Reader。

using System;
using System.Runtime.InteropServices;
using System.Text;

namespace Canteen_UAT
{
    public class Reader
    {
        public const string dllPath = "hc_icrf32.dll";
        [DllImport(dllPath)]

        //Connection between the Reader & PC
        public static extern IntPtr hc_init(short port, uint baud);
        [DllImport(dllPath)]
        public static extern short hc_exit(IntPtr icdev);
        [DllImport(dllPath)]
        public static extern short srd_ver(IntPtr icdev, short len, byte[] data_buffer);

        [DllImport(dllPath)]
        public static extern IntPtr hc_init_usb(byte[] devInfo);
        [DllImport(dllPath)]
        public static extern IntPtr hc_net_init(string ip, uint loc_port);

        [DllImport(dllPath)]
        public static extern short set_baud(IntPtr icdev, uint baud);
        [DllImport(dllPath)]
        public static extern short dv_getpin(IntPtr icdev, byte voice, byte timeout, out byte pin_len, byte[] pin);
        [DllImport(dllPath)]
        public static extern short dv_setlocnet(IntPtr icdev, byte[] loc_ip, uint loc_port, byte[] gateway, byte[] mask);
        [DllImport(dllPath)]
        public static extern short dv_setsernet(IntPtr icdev, byte[] server_ip, uint server_port);
        [DllImport(dllPath)]
        public static extern short dv_srdnet(IntPtr icdev, out byte mode, byte[] loc_ip, out uint loc_port, byte[] gateway, byte[] mask, byte[] server_ip, out uint server_port);
        [DllImport(dllPath)]
        public static extern short dv_setnetmac(IntPtr icdev, byte[] mac);
        [DllImport(dllPath)]
        public static extern short dv_srdnetmac(IntPtr icdev, byte[] mac);
        [DllImport(dllPath)]
        public static extern short dv_setnetmode(IntPtr icdev, byte mode);
        [DllImport(dllPath)]
        public static extern short dv_reset(IntPtr idcdev);
        [DllImport(dllPath)]
        public static extern short dv_setnetreadcard(IntPtr icdev, byte mode, byte block_Adr,
                                    byte block_Num, byte[] _Key);
        [DllImport(dllPath)]
        public static extern short dv_srdnetreadcard(IntPtr icdev, out byte mode, out byte block_Adr,
                                    out byte block_Num, byte[] _Key);

        [DllImport(dllPath)]
        public static extern short lcd_clear(IntPtr icdev);

        [DllImport(dllPath)]
        public static extern short lcd_display(IntPtr icdev, byte line, byte offset, byte[] disp_buf);
        [DllImport(dllPath)]
        public static extern short lcd_backlight(IntPtr icdev, byte flag);

        [DllImport(dllPath)]
        public static extern short lcd_display_zk(IntPtr icdev, byte line, byte offset, byte len, byte[] disp_buf);

        [DllImport(dllPath)]
        public static extern short get_status(IntPtr icdev, out short state);
        [DllImport(dllPath)]
        public static extern short dv_beep(IntPtr icdev, short time);
        [DllImport(dllPath)]
        public static extern short swr_eeprom(IntPtr icdev, short offset, short len, byte[] data_buffer);
        [DllImport(dllPath)]
        public static extern short srd_eeprom(IntPtr icdev, short offset, short len, byte[] data_buffer);
        [DllImport(dllPath)]
        public static extern short srd_snr(IntPtr icdev, short len, byte[] data_buffer);
        [DllImport(dllPath)]
        public static extern short chk_card(IntPtr icdev);
        [DllImport(dllPath)]
        public static extern short ic_encrypt(byte[] key, byte[] ptrSource, ushort msgLen, byte[] ptrDest);
        [DllImport(dllPath)]
        public static extern short ic_decrypt(byte[] key, byte[] ptrSource, ushort msgLen, byte[] ptrDest);
        [DllImport(dllPath)]
        public static extern short asc_hex(string asc, byte[] hex, int pair_len);
        [DllImport(dllPath)]
        public static extern short hex_asc(byte[] hex, byte[] asc, int length);
        [DllImport(dllPath)]
        public static extern short rf_reset(IntPtr icdev, ushort _Msec);
        [DllImport(dllPath)]
        public static extern short rf_request(IntPtr icdev, byte _Mode, out short TagType);
        [DllImport(dllPath)]
        public static extern short rf_anticoll(IntPtr icdev, byte _Bcnt, out uint _Snr);


        [DllImport(dllPath)]
        public static extern short rf_select(IntPtr icdev, uint _Snr, out byte _Size);
        [DllImport(dllPath)]
        public static extern short rf_card(IntPtr icdev, byte _Mode, out ulong _Snr);

        [DllImport(dllPath)]
        public static extern short rf_card_7uid_hex(IntPtr icdev, byte _Mode, byte[] _Snr);
        [DllImport(dllPath)]
        public static extern short rf_card_7uid(IntPtr icdev, byte _Mode, byte[] _Snr);

        [DllImport(dllPath)]
        public static extern short rf_authentication_ulc_key(IntPtr icdev, byte[] _Key);
        [DllImport(dllPath)]
        public static extern short rf_authentication_ulc_key_hex(IntPtr icdev, string _Key);
        [DllImport(dllPath)]
        public static extern short rf_changekey_ulc(IntPtr icdev, byte[] _Key);
        [DllImport(dllPath)]
        public static extern short rf_changekey_ulc_hex(IntPtr icdev, string _Key);

        [DllImport(dllPath)]
        public static extern short rf_halt(IntPtr icdev);
        [DllImport(dllPath)]
        public static extern short rf_authentication(IntPtr icdev, byte _Mode, byte _SecNr);
        [DllImport(dllPath)]
        public static extern short rf_authentication_2(IntPtr icdev, byte _Mode, byte KeyNr, byte Adr);
        [DllImport(dllPath)]
        public static extern short rf_authentication_key(IntPtr icdev, byte _Mode, byte _BlockNr, byte[] _Key);
        [DllImport(dllPath)]
        public static extern short rf_authentication_key_hex(IntPtr icdev, byte _Mode, byte _BlockNr, string _Key);
        [DllImport(dllPath)]
        public static extern short rf_read(IntPtr icdev, byte _Adr, byte[] _Data);
        [DllImport(dllPath)]
        public static extern short rf_read_hex(IntPtr icdev, byte _Adr, byte[] _Data);
        [DllImport(dllPath)]
        public static extern short rf_write(IntPtr icdev, byte _Adr, byte[] _Data);
        [DllImport(dllPath)]
        public static extern short rf_write_hex(IntPtr icdev, byte _Adr, string _Data);
        [DllImport(dllPath)]
        public static extern short rf_load_key(IntPtr icdev, byte _Mode, byte _SecNr, byte[] _NKey);
        [DllImport(dllPath)]
        public static extern short rf_load_key_hex(IntPtr icdev, byte _Mode, byte _SecNr, string _NKey);
        [DllImport(dllPath)]
        public static extern short rf_increment(IntPtr icdev, byte _Adr, uint _Value);
        [DllImport(dllPath)]
        public static extern short rf_decrement(IntPtr icdev, byte _Adr, uint _Value);
        [DllImport(dllPath)]
        public static extern short rf_initval(IntPtr icdev, byte _Adr, uint _Value);
        [DllImport(dllPath)]
        public static extern short rf_readval(IntPtr icdev, byte _Adr, out uint _Value);
        [DllImport(dllPath)]
        public static extern short rf_changeb3(IntPtr icdev, byte _SecNr, byte[] _KeyA, byte _B0, byte _B1, byte _B2, byte _B3, byte _Bk, byte[] _KeyB);

        ////////////////////////   PRO cpu   //////////////////////////////////////////////////////////////////////////////////
        [DllImport(dllPath)]
        public static extern short rf_pro_reset(IntPtr icdev, out uint rlen, byte[] rbuff);
        [DllImport(dllPath)]
        public static extern short rf_pro_reset_hex(IntPtr icdev, out byte rlen, byte[] rbuff);
        [DllImport(dllPath)]
        public static extern short rf_pro_send(IntPtr icdev, uint slen, byte[] sbuff, byte[] rbuff);
        [DllImport(dllPath)]
        public static extern short rf_pro_send_hex(IntPtr icdev, string sbuff, byte[] rbuff);
        [DllImport(dllPath)]
        public static extern short rf_pro_halt(IntPtr icdev);

        //////////////////////// 磁条卡 ///////////////////////////////////////////////////////////////////////////////////////
        [DllImport(dllPath)]
        public static extern short read_magnetic_card(IntPtr icdev, byte timeout, out byte track1_len, byte[] track1_data,
                                     out byte track2_len, byte[] track2_data, out byte track3_len, byte[] track3_data);
    }
}

标签: c#mysql-workbench

解决方案


推荐阅读