Исключение MVC Null после развертывания на веб-сервере - PullRequest
0 голосов
/ 09 января 2012

У меня есть приложение MVC 3, которое отлично работает при локальном запуске из Visual Studio,

Существуют два bat-файла, которые предварительно компилируют приложение, готовое к развертыванию. Когда я запускаю bat-файлы и загружаю папку развертывания на веб-сервер, выдается множество ошибок, в том числе нулевая ошибка исключения,

Ошибка может быть замечена при посещении следующего URL, я также могу предоставить полную трассировку стека в документе, если требуется, я не хотел публиковать его здесь, поскольку он настолько большой.

здесь можно увидеть ошибку

Я не могу понять, откуда возникает ошибка, поскольку все работает локально. Кажется, эти ошибки создаются при компиляции файлов с помощью bat-файлов. У кого-нибудь был подобный опыт после развертывания приложения MVC? Может кто-нибудь предложить какой-либо совет о том, что может быть причиной проблемы?

Спасибо

Ли

UPDATE =============

Это метод GetTax, этот код был тщательно протестирован как часть NopCommerce 2.2, ошибки возникают только после того, как решение скомпилировано с помощью файлов BAT, что снова является стандартом для создания приложения nop commerce 2.2, я прав? думая, что на моем компьютере должно быть что-то, что вызывает эти проблемы, когда запускаются BAT-файлы и код компилируется для развертывания?

public virtual decimal GetTaxRate(ProductVariant productVariant, int taxCategoryId, 
        Customer customer)
    {
        //tax exempt
        if (IsTaxExempt(productVariant, customer))
        {
            return decimal.Zero;
        }

        //tax request
        var calculateTaxRequest = CreateCalculateTaxRequest(productVariant, taxCategoryId, customer);

        //make EU VAT exempt validation (the European Union Value Added Tax)
        if (_taxSettings.EuVatEnabled)
        {
            if (IsVatExempt(calculateTaxRequest.Address, calculateTaxRequest.Customer))
            {
                //return zero if VAT is not chargeable
                return decimal.Zero;
            }
        }

        //active tax provider
        var activeTaxProvider = LoadActiveTaxProvider();

        //get tax rate
        var calculateTaxResult = activeTaxProvider.GetTaxRate(calculateTaxRequest);
        if (calculateTaxResult.Success)
            return calculateTaxResult.TaxRate;
        else
            return decimal.Zero;
    }

Ответы [ 2 ]

1 голос
/ 09 января 2012

Вероятно, это связано с несоответствием конфигурации между вашей средой разработки и производством.

Если вы посмотрите на верхнюю часть трассировки стека, вы увидите, что это, вероятно, не имеет ничего общего с MVC, но с некоторымваш TaxService.

[NullReferenceException: Object reference not set to an instance of an object.]
Nop.Services.Tax.TaxService.GetTaxRate(ProductVariant productVariant, Int32 taxCategoryId, Customer customer) in c:\Nop 2.2 Source\just4fashion2.2source\Libraries\Nop.Services\Tax\TaxService.cs:240

Вам необходимо проверить, на каком элементе возникает исключение Null.Что нужно проверить:

  • Является ли productVariant пустым?
  • Является ли клиент пустым?
  • Существуют ли какие-либо другие элементы, доступные в этой функции, такие как хранилище или фабрика, которые могут бытьnull?
  • Существуют ли какие-либо изменения конфигурации между локальной и рабочей средой, такие как строка подключения, регистрация или параметры безопасности?
1 голос
/ 09 января 2012

Трассировка стека указывает на то, что он исходит из метода GetTaxRate в TaxService.cs. Я предполагаю, что это не что-то специфическое для ASP.NET MVC, а проблема развертывания. Это могут быть разрешения базы данных или строки подключения. Вам нужно проверить, что делает этот метод.

Nop.Services.Tax.TaxService.GetTaxRate(ProductVariant productVariant, Int32 taxCategoryId, Customer customer) in c:\Nop 2.2 Source\just4fashion2.2source\Libraries\Nop.Services\Tax\TaxService.cs:240
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...