2010-05-05 2 views
1

Мой сервер IIS 7 использует код кода C# .NET для чтения из базы данных MS SQL (на другой машине) и представляет его в Интернете. Я сделал аналогичную публикацию раньше, но проблема снова появилась, и я не смог ее исправить.IIS 7 - определение десятичного символа

В этом отношении у меня была проблема с моим норвежским сервером Windows, работающим под IIS 7. Он считывает столбцы из базы данных, которая возвращает некоторые координаты с десятичными знаками. В базе данных мне удалось изменить десятичный символ от норвежского по умолчанию (запятая) до периодов, изменив настройки окон.

Я сделал то же самое на сервере Windows 2008 с IIS 7, но он все еще переводит периоды обратно в запятую. Мне нужно, чтобы это были периоды. Я даже изменил код, чтобы преобразовать строки в строки, а затем заменить все запятые на периоды, но он по-прежнему не работает.

Любая помощь здесь будет принята с благодарностью.

ответ

5

Прежде всего - я предполагаю, что вы имеете в виду что-то вроде ASP.NET Web Forms, не так ли?

Если да, то в web.config, вы задали:

<globalization culture="auto"/> 

Если вы сделали это, и вы получаете некоторые проблемы, тем не менее, это может быть, что настройки языка, как определено в браузере ошибочны. Проверьте их.

Вы можете опустить приведенную выше строку web.config, если вам не нужно определять локаль пользователя и всегда показывать десятичные знаки в соответствии с их предпочтениями.

Вы можете изменить эту строку следующим образом:

<globalization culture="NN-NO"/> 

... чтобы заставить ваши веб-приложения всегда использовать Норвежский (Норвегия) (NN-NO), как это культура по умолчанию, который должен заставляйте десятичные знаки отображать то, что вам нужно.

В качестве альтернативы, вы можете выбрать для форматирования любых десятичных знаков на экране в соответствии с определенным форматом, используя NumberFormatInfo, как в моем примере ниже:

NumberFormatInfo ni = Globalization.CultureInfo.GetCultureInfo("NB-NO").NumberFormat; 
Decimal.ToString("c", ni); 

Надеется, что это помогает,

Ричарду.

+0

@Richard, Спасибо, что просветил меня, я не знал об этой функциональности. Я использую структуру ASP.NET MVC2. Я вижу, что когда я помещаю вещи на сервер IIS, он дает мне запятую десятичную, но когда я тестирую ее локально, используя встроенный отладчик в Visual Studio, я получаю десятичные числа периода. Я не понимаю, почему, похоже, что-то есть с сервером IIS, а не с браузером. – cc0

+0

@ cc0 - функции локализации/глобализации могут показаться немного запутанными, но по моему опыту, как правило, это неправильные настройки браузера, когда .NET установлен для обнаружения их на сервере. Дважды проверьте web.config на вашем локальном компьютере и в своей живой среде. Добавьте строку, о которой я говорил, и поэкспериментируйте с настройками. Не забывайте, что если вы не владеете или не управляете веб-сервером, возможно, ваш хост имеет некоторые параметры, настроенные в файле machine.config, которые переопределяют поведение по умолчанию. Сначала попробуйте это, затем дайте мне знать, как вы справляетесь. – Richard

+0

Вот и все. Все работает сейчас! Я заставил культуру глобализации EN-US, и теперь она выплескивает правильные десятичные числа. Потрясающие. Спасибо, сэр! – cc0