部署到Web服务器后的MVC Null异常

时间:2012-01-09 18:13:45

标签: asp.net-mvc-3 deployment

我有一个MVC 3应用程序,从visual studio本地运行时可以正常工作,

有两个bat文件预先编译应用程序以备部署,当我运行bat文件并将部署文件夹上传到Web服务器时,会抛出一堆错误,包括空异常错误,

通过访问以下URL可以看到错误,如果需要,我还可以在文档上提供完整的堆栈跟踪,我不想在这里发布,因为它太大了。

error can be seen here

我无法理解错误的来源,因为一切都在本地运行,似乎这些错误是在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 个答案:

答案 0 :(得分:1)

堆栈跟踪表明它来自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

答案 1 :(得分:1)

它可能与您的开发和生产环境之间的配置不匹配有关。

如果您查看堆栈跟踪的顶部,您会发现它可能与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?
  • 客户是否为空?
  • 此函数中是否存在可以为null的存储库或工厂中访问的任何其他元素?
  • 本地和生产之间是否有任何配置更改,例如connectionstring,logging或security settings?