我刚刚更新了IIS服务器上的Web应用程序,但在更新后,我的用户收到了错误的输入格式错误。此错误是因为代码正在尝试将用户的字符串输入转换为双精度,如果用户传入类似55.5D的内容,这显然不起作用。
除了糟糕的编码习惯,我还要修复,这不是真正的问题。问题是用户正在发送正确的值(我观看并自己输入完全相同的值)但程序仍然抛出此错误。我恢复到以前的版本,错误消失了。自上一版本以来,我还没有改变这部分代码。谁知道这里发生了什么?我无法在开发服务器上重复这个问题,也不会故意输入程序输入错误。
编辑:我已经尝试在更新后清除用户和服务器的缓存,但是仍然收到相同的错误,即使我对正在破坏的区域进行检查(我在其他地方错过了一些)在代码中也是如此)。但是,当一次只有少数用户使用它时,它工作得很好,但是当很多用户使用它时它就会崩溃。当许多用户访问该站点时,ASP.NET控件是否存在问题?答案 0 :(得分:0)
IIS中完全托管的组件不需要重新启动应用程序池即可应用更改。相反,即使只有web.config发生变化,它也会重新加载和JIT。如果您有疑问,可以随时通过在应用程序中包含一个具有明显区别的测试页来进行测试。
您的案例最可能的原因是缓存。客户端更可能是罪魁祸首。您是否监控过http代码以验证请求是否真的命中您的服务器并获得“实时”结果(HTTP 200)? 服务器端进程内缓存应该自动重置,但是如果你在进程外的某个地方持有它,那么它们可以在应用程序升级后被选中。
当然要重新验证您确实正在测试您认为正在测试的那些dll。如果事情没有意义,那么验证更广泛的假设可能会有所帮助。