Развертывание приложения в другом месте, чем в языке разработки - PullRequest
1 голос
/ 01 марта 2009

Мой .Net .exe используется для чтения файла и хранения информации в БД sql. В системе dev у нас были настройки по умолчанию и файлы в США, и все работало нормально.

Я использовал тот же .exe и развернул его на нашем сервере Prod, где настройки по умолчанию и файлы находятся в локали Великобритании.

Я использовал Datetime.Parse, который должен анализировать дату в формате локальной системы, то есть для США ММ / дд / гггг и для Великобритании дд / мм / гггг.

Но при разборе даты в британском формате это исключение. Может ли кто-нибудь помочь мне, где я делаю неправильно?

Я также заметил кое-что странное, что, когда я изменил настройку устройства dev по умолчанию на UK, а затем скомпилировал .exe и развернул то же самое, оно работало.

Не могли бы вы также дать мне знать, почему это сработало.

Ответы [ 3 ]

1 голос
/ 01 марта 2009

вы должны предоставить iformatprovider (то есть экземпляр System.Globalization.CultureInfo) для вашего метода DateTime.Parse (). Кстати, я предлагаю использовать TryParse или, если вы точно знаете, как поступают строки даты и времени, используйте TryParseExact, так как они намного быстрее.

0 голосов
/ 01 марта 2009

Трудно сказать без подробностей, но, возможно, сервер приложений и сервер sql работал на другом языке, чем вы ожидали. Даже если вы правильно установили настройку культуры на сервере приложений, форматы даты и времени на сервере sql все равно не такие, как ожидалось.

0 голосов
/ 01 марта 2009

Лучшее решение - указать языковой стандарт в app.config, переопределяя машинный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...