过去几周我一直在运行控制台应用程序,没有任何问题。 但是,一旦我将应用程序转换为Windows服务,我就会收到错误,其中我使用Convert.ToDouble()函数将字符串转换为双精度。在这里,我收到错误消息“输入字符串的格式不正确”。
其他帖子主要指使用区域性信息,例如Convert.ToDouble(string,CultureInfo.InvariantCulture)。
但是我的代码已经运行了好几个星期了,为什么运行与服务相同的代码会有所作为?
谢谢!
答案 0 :(得分:1)
您的服务可能在不同文化下的不同用户下运行(这是最常见的问题(有关Windows服务的答案)。
要快速进行测试,请将您的服务设置为以您的身份启动。如果我的理论是正确的,那应该可以。 不要用这种方法解决问题。而是改回您应该使用的用户,并验证是否可以解决问题。现在您知道它与用户有关。
然后使用InvariantCulture进行互连网建议以正确解决问题。