Вы используете текущую культуру для анализа значений DateTime
и int
. Первое, что нужно проверить - все ли ваши браузеры настроены на отправку одной и той же культуры на веб-сервер в своих заголовках HTTP-запроса.
Из соображений стиля следует избегать использования зависящих от культуры форматов для параметров URL. Наиболее подходящий формат для использования - это фиксированный формат XML-схемы, например:
[WebMethod]
public int Insert(string userDate, string DeviceID) {
DateTime date;
int device;
try {
date = XmlConvert.ToDateTime(userDate, XmlDateTimeSerializationMode.Local);
device = XmlConvert.ToInt32(DeviceID);
} catch (Exception) {
// Throw an error
return -1;
}
UsersDatesBLL BLL = new UsersDatesBLL();
return BLL.Insert(device, date);
}
И назовите это так:
CountDownService.asmx/Insert?userDate=1980-04-24&DeviceID=3435
Другая альтернатива - использовать строго типизированные значения параметров и позволить ASP.NET выполнить анализ за вас, например,
[WebMethod]
public int Insert(DateTime userDate, int DeviceID) {
UsersDatesBLL BLL = new UsersDatesBLL();
return BLL.Insert(DeviceID, userDate);
}
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ - Я сам не пробовал эту альтернативу, но стоит посмотреть, потому что она облегчит вашу жизнь, если вам не нужно будет вставлять код анализа в каждый веб-метод.