Различия между локальным и развернутым приложением MVC 2 - PullRequest
1 голос
/ 19 января 2011

Я протестировал веб-приложение, которое я создал с использованием MVC 2 на локальных серверах (как casini, так и IIS 7.5).Однако при развертывании приложения в стандартной версии сервера Windows 2008 (также с IIS 7.5) я получаю неожиданные результаты.

Проблема в том, что у меня есть контроллер, предназначенный для отображения графиков с помощью Fusion Charts путем записи данных XMLв файлы.

Когда приложение развернуто, все работает (переключение профилей / просмотр масштаба года и года), но когда я пытаюсь указать диапазон дат, приложение загружается, как будто ничего не произошло при создании первой записи XMLзначение 0.

Это не происходит на моих локальных серверах, я не получаю никаких ошибок ни на развернутых, ни на локальных серверах.

Вот соответствующая часть кода, которая может быть в состоянииЧтобы решить эту проблему.

Метод действия:

 public ActionResult Index(string clientProfile, string domainProfile, string period, string sDate, string eDate)
 {
    if (period == "Month")
            {

                if (!string.IsNullOrEmpty(sDate) && !string.IsNullOrEmpty(eDate))
                {
                    var strXML = seoService.GraphForTrafficCountForDomain(clientProfile, sDate, eDate);

                    System.IO.File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + "/FusionCharts/Data/Traffic.xml", strXML);
                }
                else
                {
                    var strXML = seoService.GraphForTrafficCountForDomain(clientProfile);

                    System.IO.File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + "/FusionCharts/Data/Traffic.xml", strXML);
                }
            }
            else if (period == "Year")
            {

                var strXML = seoService.GraphForVisitsCountForDomainGroupByYear(clientProfile);

                System.IO.File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + "/FusionCharts/Data/Traffic.xml", strXML);
            }

            return View();
 }

Сервисная функция:

public string GraphForTrafficCountForDomain(string domain, string sDate, string eDate)
{
            var profile = profileService.GetProfileByDomain(domain, null);

            string strXML = "";

            var StartingDate = DateTime.Parse(sDate);
            var EndingDate = DateTime.Parse(eDate);

            var data =
           repository.FindAll<TrafficData>(x => x.ProfileId == profile.Id && x.Date >= StartingDate && x.Date <= EndingDate).OrderByDescending(d => d.Date).ToList();

            strXML += @"<?xml version=""1.0"" encoding=""utf-8"" ?>";
            strXML += @"<graph caption="""" subcaption="""" xAxisName=""Month"" yAxisName=""Traffic"" decimalPrecision=""0"" formatNumberScale=""0"">";

            for (DateTime date = StartingDate; date.Date <= EndingDate; date = date.AddMonths(1))
            {
                var startDate = new DateTime(date.Year, date.Month, 1);
                var endDate = new DateTime(date.AddMonths(1).Year, date.AddMonths(1).Month, 1).AddDays(-1);

                int value = 0;
                if (data.Any(x => x.Date >= startDate && x.Date <= endDate))
                {
                    value = data.Where(x => x.Date >= startDate && x.Date <= endDate).Select(d => d.TrafficCount).Sum();
                }

                strXML += String.Format(@"<set name=""{0}"" value=""{1}"" hoverText=""{2}""/>",
                                           date.ToString("MM-yy"), (value == 0) ? "0" : value.ToString(),
                                           (value == 0) ? "0" : value.ToString() + " " + date.ToString("MM-yy"));
            }

            strXML += @"</graph>";

            return strXML;
}

Я также прикрепляю изображение, содержащее правильный вывод и неправильныйвывод.

Вывод изображения

1 Ответ

0 голосов
/ 20 января 2011

По какой-то причине проблема заключалась в различиях между культурами серверов (даже если сервер размещен в той же стране, где я живу).

Объект DateTime не был правильно обработан.

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