Сайт asp.net выдает ошибки после загрузки на сервер, отлично работает на локальном сервере - PullRequest
0 голосов
/ 05 декабря 2011

У меня есть веб-сайт asp.net, который, когда я размещал его на своем сервере колледжа, выдавал ошибку, когда я выводил из строя внутренний текст элемента xml и преобразовывал его в дату, которая должна быть выбрана в элементе управления календарем.Ошибка, которую я получаю, -

String was not recognized as a valid DateTime.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.FormatException: String was not recognized as a valid DateTime.

Source Error:

Line 91:                 displayEvent.Text += "<b>On-</b>" + node.SelectSingleNode("date").InnerText + "<br />";
Line 92:                 displayEvent.Text += "<b>Contact Number-</b>" + node.SelectSingleNode("phone").InnerText + "<br />";
Line 93:                 DateTime dts1 = Convert.ToDateTime(node.SelectSingleNode("date").InnerText);
Line 94:                 Calendar1.SelectedDate = dts1;
Line 95:                 latitude = node.SelectSingleNode("latitude").InnerText;

XML-файл выглядит как -

<root1><data><event_name>Christmas Party</event_name><event_desc>The annual christmas bash is happening as planned. This year there is bound to be more excitement.</event_desc><date>12/25/2011</date><phone>111-111-1111</phone><latitude>43.700573</latitude><longitude>-79.296661</longitude></data><data><event_name>New Year Party</event_name><event_desc>Ring in the new year with us, the party is going to be a never before event with a huge celebrity guest line up.</event_desc><date>12/31/2011</date><phone>222-222-2222</phone><latitude>43.728572</latitude><longitude>-79.48669</longitude></data><data><event_name>Jt Birthday</event_name><event_desc>It's jasmeet's birthday. He wanted to get a samsung nexus s, so i should try and buy that for him.</event_desc><date>12/11/2011</date><phone>333-333-3333</phone><latitude>45.515849</latitude><longitude>-73.553417</longitude></data></root1>

Также я использую широту и долготу для отображения их на карте.У него также есть проблема с преобразованием внутренних текстов этих элементов в удвоение

Input string was not in a correct format.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.FormatException: Input string was not in a correct format.

Source Error:

Line 75:     {
Line 76:         GMap1.reset();
Line 77:         GMap1.addGMarker(new GMarker(new GLatLng(Convert.ToDouble(latitude),Convert.ToDouble(longitude))));
Line 78:         GMap1.setCenter(new GLatLng(Convert.ToDouble(latitude), Convert.ToDouble(longitude)), 6);
Line 79:         displayEvent.Text = "                                   ";

. То, что я не могу понять, это то, что все это работает абсолютно нормально на моем компьютере.когда я тестирую его на локальном сервере, он работает нормально, но на моем сервере колледжа он выдает эти ошибки.Кто-нибудь может подсказать мне, что я здесь делаю неправильно.Другие части сайта читают из других XML-файлов, и они не выдают никаких исключений.Это последнее добавление чтения XML на сайт, все остальное работает нормально.Метод, который используется для чтения XML-файла и преобразования -

  protected void okButton_Click(object sender, EventArgs e)
    {
        GMap1.reset();
        GMap1.addGMarker(new GMarker(new GLatLng(Convert.ToDouble(latitude),Convert.ToDouble(longitude))));
        GMap1.setCenter(new GLatLng(Convert.ToDouble(latitude), Convert.ToDouble(longitude)), 6);
        displayEvent.Text = "                                   ";
        XmlDocument doc = new XmlDocument();
        doc.Load(Server.MapPath("Xml/try.xml"));
        XmlNodeList nodeList = doc.SelectNodes("root1/data");
        foreach (XmlNode node in nodeList)
        {
            if (node.SelectSingleNode("event_name").InnerText.Equals(DropDownList1.SelectedValue))
            {
                latitude = "";
                longitude = "";
                displayEvent.Text += "<b>Event name-</b>" + node.SelectSingleNode("event_name").InnerText + "<br />";
                displayEvent.Text += "<b>Description-</b>" + node.SelectSingleNode("event_desc").InnerText + "<br />";
                displayEvent.Text += "<b>On-</b>" + node.SelectSingleNode("date").InnerText + "<br />";
                displayEvent.Text += "<b>Contact Number-</b>" + node.SelectSingleNode("phone").InnerText + "<br />";
                Calendar1.SelectedDate = Convert.ToDateTime(node.SelectSingleNode("date").InnerText);
                latitude = node.SelectSingleNode("latitude").InnerText;
                longitude = node.SelectSingleNode("longitude").InnerText;
            }
        }
    }

1 Ответ

1 голос
/ 05 декабря 2011

Два компьютера имеют разные региональные настройки.Вы конвертируете строку «25.12.2011» в значение DateTime.Если в панели управления / региональных настройках краткий формат даты - дд / мм / гггг, то 25 интерпретируется как номер месяца, а строка считается недействительной, поскольку у нас всего двенадцать.Что касается значений долготы / широты, я думаю, что десятичный разделитель установлен на запятой на вашем сервере колледжа.Попробуйте использовать версии Convert.ToDateTime / ToDouble со вторым параметром IFromatProvider.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...