我最近将一个经典的ASP网站转移到了一台新服务器上。服务器运行IIS7.5。该站点通过ODBC连接到MS SQL数据库。它的应用程序池在NETWORK SERVICE
下运行。
通过这个企业规模的网站分散了datetime
条目字段,这些字段在旧服务器上运行良好,但现在它们都有以下错误:
[Microsoft] [SQL Server Native Client 10.0] [SQL Server]将varchar数据类型转换为日期时间数据类型会导致超出范围的值。
期待错误的datetime
格式。代码中使用的格式始终为yyyy/MM/dd
。当我在表单字段中交换月和日位置时,它可以正常工作。即yyyy/dd/MM
(这很奇怪)。
Windows控制面板,IIS全球化和NETWORK SERVICE
用户的注册表项都设置为en-GB!
我已经测试了代码一直到数据库的调用,输入看起来很好。然后我也复制了那个sql并在我自己的登录下通过SQL Server Management Studio运行它,这也很好。仅当通过网站运行时(在NETWORK SERVICE
下并通过ODBC连接),它才会失败。
非常感谢任何帮助。
答案 0 :(得分:2)
您可以检查并更改NETWORK SERVICE用户登录的默认语言。
在MS SQL Management Studio中,在对象资源管理器中搜索安全性/登录/以及您的帐户名称。在上下文菜单中有属性条目。然后检查默认语言。
答案 1 :(得分:2)
在Web服务器上的ODBC数据源中,将数据源设置为“输出货币编号和日期时使用区域设置”...
所以,
Control Panel\All Control Panel Items\Administrative Tools\Data Sources (ODBC)
Double click your data source
Click Next
Enter a valid db user / password, click next
Select the default DB, then next
Make sure the box as described above is CHECKED, then finish.
答案 2 :(得分:2)
在IIS上,在Web应用程序的应用程序池中 - >高级设置 - >
将加载用户个人资料选项设置为 TRUE 。这将强制您的池用户“设置”设置。
答案 3 :(得分:1)
您可以更改IIS 6的AspLCID metabase property或IIS 7+的LCID属性:ASP attributes。这是默认使用的那个。