迁移至Win10 IIS10后VB.net中CDate函数日期格式异常求助
解决VB.NET遗留系统CDate日期格式问题的方案
调整IIS应用池的区域设置
- 打开IIS管理器,找到对应应用的应用池,右键选择“高级设置”
- 在“进程模型”下找到“加载用户配置文件”,设置为
True(默认可能为False,导致应用池不读取系统区域设置) - 重启应用池和网站
针对特定应用强制指定区域
如果调整应用池配置无效,可通过web.config强制应用使用美式日期格式:
- 在网站根目录的
web.config中添加以下配置(无该文件则新建):
<configuration> <system.web> <globalization culture="en-US" uiCulture="en-US" /> </system.web> </configuration>
- 该配置会直接让应用采用MM/dd/yyyy的日期解析规则,无需修改代码
修改IIS运行账户的区域设置
- 确认应用池使用的账户(默认是
ApplicationPoolIdentity或自定义账户)- 若为
ApplicationPoolIdentity:打开“控制面板”→“区域”→“管理”选项卡,点击“复制设置”,勾选“欢迎屏幕和系统账户”后确认 - 若为自定义账户:登录该账户,将区域设置中的日期格式改为MM/dd/yyyy,之后重启服务器
- 若为
验证设置效果
- 重启IIS和应用池后,测试系统中之前报错的日期相关功能
- 可临时部署一个简单VB.NET页面,输出
CDate("01/02/2024")的结果,确认解析为2024年1月2日而非2月1日
内容的提问来源于stack exchange,提问作者Rak
相关产品推荐
相关产品推荐

