Я работаю над компактным каркасом c # vs 2005.
Моим КПК является устройство Pocket PC 2003.
Я установил приложение и успешно запустил его на устройстве PDA. Когда я выполнил проект для клиента, и когда он развернул и запустил приложение, он получает ошибку
"System.ArgumentException: значение не попадает в ожидаемый диапазон.
at System.Text.ASCIIEncoding.GetBytes () ".
Трассировка стека здесь
Exception: System.ArgumentException: Value does not fall within the expected range.
at System.Text.ASCIIEncoding.GetBytes()
at BinaryEncoder.EncodeVariableString()
at DataHolder.encodeValue()
at UpdateInformation.encode()
at DataHolder.encodeValue()
at LogonRequest.encode()
at MessageFactory.getRequestMsg()
at MessageFactory.getRequestMsg()
at LogonManager.logon()
at doLogon()
at frmLogin.btnNext_Click()
public static int EncodeVariableString (строка str, byte [] rawData,
int encodePos) {int curPos = encodePos;
int len = str.Length.ToString (). Length; curPos = EncodePositiveInt32 (len, rawData, curPos, 1);
curPos = EncodePositiveInt32(str.Length, rawData, curPos, len);
return Encoding.ASCII.GetBytes(str, 0, str.Length, rawData, curPos) + curPos; }
Клиент также вводит то же имя пользователя и пароль, но он получает ошибку, а я не получаю ошибку. Стоит выкинуть ошибку в обоих КПК правильно.
Я жестко закодировал значения, данные клиентом. Он работает в моем КПК, но не работает в клиентском КПК.
Одно отличие, которое я видел, в моем PDA Byte [] rawdata.length = 105
а в клиентском КПК это rawdata.length = 96.
Я не могу воспроизвести ошибку на моем устройстве.
Есть мысли по этому вопросу?
Спасибо