Входная строка была в неправильном формате

#c# #.net #winforms #web-services #soap

#c# #.net #winforms #веб-сервисы #soap

Вопрос:

У меня есть две функции веб-службы, которые имеют точно такой же интерфейс (вызываются из приложения C # / Winform):

string[] f1(int, string[]) и string[] f2(int, string[])

на который я отправляю точно такие же данные. Когда я вызываю f1, она работает просто отлично и возвращает строку [], однако, когда я вызываю f2, я получаю SoapException, в котором говорится, что «входная строка имеет неправильный формат».

Что может быть причиной того, что одна из них работает, а другая не работает?

     private void backgroundWorkerUploadNew_DoWork(object sender, DoWorkEventArgs e)
    {
        List<String> submittedList = new List<String>();
        StreamReader reader = new StreamReader(this.textBoxFilename.Text);
        String data;

        while ((data = reader.ReadLine()) != null)
        {
            submittedList.Add(data);
        }
        reader.Close();
        // Send array of handset names to service
        int channelId = 0;
        string[] listToSubmit = submittedList.ToArray();
        channelId = AppStatus.CurrentChannel.ChannelID;
        String[] newHandsetsList = service.Function2(channelId, listToSubmit);
        ...
    }
  

Метод веб-службы

 public List<String> Function2(int integer, List<String> strings)
{
    List<String> newList = new List<string>();
    DataTable tempDt = null;
    foreach (String s in strings)
    {
        String q = @"** SOME QUERY **";
        tempDt = Database.RunSql(q);
        ...
    }
    return newList;
}
  

Комментарии:

1. содержит ли строка дату?

2. Деннис, ты можешь опубликовать фрагмент кода?

3. Также добавьте данные, которые вы отправляете. Обе службы запущены на одном компьютере?

4. Деннис, одних сигнатур метода будет недостаточно, чтобы помочь вам. Вам нужно перечислить некоторые внутренние компоненты метода.

Ответ №1:

Это сообщение приходит от метода Parse (для числовых типов, даты и времени и т.д.). Если компьютеры используют разные языки, правильный формат будет другим. Если это проблема, вы могли бы решить ее, используя инвариантный язык.

Комментарии:

1. Решаемая: Ну, это была не проблема культуры, а скорее попытка изменить поток данных на int, когда я пытался получить значение в ячейке (число sql Count ())).