问候人们......我开发了一个网络...一切正常,直到部署......我的问题是 - 为什么会出现这个错误?因为如果我在Visual Studio Server上运行Web 一切都很好...但是当我在IIS服务器上部署并运行它时突然出现此错误 出现..为什么是人?真的需要一些帮助......
string tarikh = Convert.ToDateTime(txtTarikh.Text).ToString("yyyy-MM-dd");
该行是导致错误的原因..提前谢谢
答案 0 :(得分:3)
对于此问题,您必须转到IIS
转到IIS - >选择您的已配置网站 - >单击 .NET全球化
从.NET全球化中,选择文化和 UI-文化为英语(美国)(en - US)
通过Windows命令提示符运行命令iisreset重新启动IIS
检查申请是否同样存在问题
答案 1 :(得分:2)
可能是服务器端默认文化与您在开发中使用的文化不同。
无论如何,您期望日期是什么格式?您应该使用DateTime.TryParseExact
或至少使用DateTime.TryParse
指定相应的CultureInfo
。 (例如,用户的文化。)
同样,我建议您提供适当的CultureInfo
至ToString
- 可能CultureInfo.InvariantCulture
。
答案 2 :(得分:2)
您的开发计算机和Web服务器上有不同的“区域设置”。
您可以尝试使用重载版本Convert.ToDateTime(字符串,IFormatProvider),而不是调用Convert.ToDateTime(字符串),并指定您期望日期的格式。
我们中的一些人认为今天的日期是“2012-04-22”,而其他人声称它是“2012年4月22日”等...
编辑:只需执行以下操作:
var ci = new CultureInfo("xx-XX");
var dateTime = Convert.ToDateTime(txtTarikh.Text, ci);
其中xx-XX是您要使用的文化代码。在这里查找: http://sharpertutorials.com/list-of-culture-codes/
答案 3 :(得分:1)
因为从txtTarikh.Text获取的日期未被解析为日期。 可能在您的本地计算机上,您的区域设置与您的服务器不同。 添加日志并打印txtTarikh.Text以查看服务器和本地计算机上的返回内容。
答案 4 :(得分:0)
答案 5 :(得分:0)
<system.web>
<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8" culture="en-US" uiCulture="en-US" />
</system.web>
在web.config中更改这些行,然后再次发布。。它对我有用。