2011-12-05 80 views
0

我有一个asp.net网站,当我把它放在我的大学服务器上给了我一个错误,当我退出了一个xml元素的内部文本并将其转换为应在日历控件上选择的日期。 错误我收到IS-asp.net网站上传到服务器后出现错误,在本地服务器上正常工作

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

两台计算机具有不同的区域设置。您正在将字符串“12/25/2011”转换为DateTime值。如果在控制面板/区域设置短日期格式为dd/MM/yyyy,则25被解释为月份编号,并且该字符串被认为是无效的,因为我们只有十二个。至于经度/纬度值,我的猜测是小数点分隔符在您的大学服务器上设置为逗号。考虑将Convert.ToDateTime/ToDouble的版本与第二个IFromatProvider参数一起使用。

+0

非常感谢伊戈尔先生。我对此颇感不安。我必须展示这个网站作为最后的项目,这是唯一的破碎部分。现在它工作正常。 –

相关问题