1

问候人们......我开发了一个网络......在部署之前一切正常......我的问题是 - 为什么会出现这个错误?因为如果我在 Visual Studio Server 上运行 Web,一切都很好……但是当我在 IIS 服务器上部署和运行它时,突然出现这个错误……为什么是人?这里真的需要一些帮助..

string tarikh = Convert.ToDateTime(txtTarikh.Text).ToString("yyyy-MM-dd");

该行是导致错误的原因..提前感谢

4

6 回答 6

6

对于这个问题,你必须去 IIS

转到 IIS -> 选择您配置的网站 -> 单击.NET 全球化

从 .NET 全球化中,选择CultureUI- Culture as English (United State) (en – US)

通过 windows 命令提示符运行命令作为 iisreset 重新启动 IIS

检查应用程序是否给出相同的问题

于 2014-11-16T10:29:27.727 回答
2

服务器端默认文化可能与您在开发中使用的文化不同。

无论如何,您希望日期采用什么格式?您应该使用DateTime.TryParseExact至少使用DateTime.TryParse指定适当的CultureInfo. (例如,用户的文化。)

同样,我建议您提供适当CultureInfo的 to ToString-mably CultureInfo.InvariantCulture

于 2012-04-22T18:46:26.250 回答
2

您的开发机器和 Web 服务器上有不同的“区域设置”。

您可以尝试使用重载版本 Convert.ToDateTime(string, IFormatProvider) 并指定您希望日期采用的格式,而不是调用 Convert.ToDateTime(string)。

我们中的一些人认为今天的日期是“2012-04-22”,而其他人则认为它是“4/22/2012”等等......

编辑:只需执行以下操作:

var  ci = new CultureInfo("xx-XX");
var dateTime = Convert.ToDateTime(txtTarikh.Text, ci);

其中 xx-XX 是您要使用的文化代码。在这里查找:http: //sharpertutorials.com/list-of-culture-codes/

于 2012-04-22T18:46:32.257 回答
1

因为您从 txtTarikh.Text 获得的日期不会被解析为日期。可能在您的本地计算机上,您的区域设置与您的服务器不同。添加日志并打印 txtTarikh.Text 以查看在您的服务器和本地计算机上返回的内容。

于 2012-04-22T18:46:06.437 回答
1

在此处输入图像描述

通过在 IIS 中设置 .net 全球化设置解决了问题

于 2017-04-26T08:13:15.373 回答
0
<system.web>
    <globalization requestEncoding="utf-8"  responseEncoding="utf-8" fileEncoding="utf-8" culture="en-US" uiCulture="en-US" />
  </system.web>

在 web.config 中更改这些行并再次发布它。它对我有用。

于 2018-07-25T15:13:31.103 回答