c# - 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);
}
}
解决方案
推荐阅读
- php - 使用另一个关联数组中的值检查关联数组值
- sql-server - EF Core 3.0 存储过程:使用参数而不是模型执行过程
- chocolatey - 没有版本的巧克力清单?
- oozie - 如何在一天内多次输入到达时设计 Oozie 协调器
- r - 在闪亮的 R 中访问动态 ID
- javascript - 我有 json 文件,对于每个用户,我正在使用 file.write() 写入文件,但它只使用 javascript 写入最后一个用户
- c# - 无法加载文件或程序集“Newtonsoft.Json,版本=12.0.0.0,文化=中性,PublicKeyToken=30ad4fe6b2a6aeed”或其依赖项之一
- reactjs - 反应管理称为数据的查询字符串
- c# - Web API 2 控制器与实体框架 6 与包含
- firebase - 如何使用 .env 配置配置谷歌服务密钥 json 文件