我有一个MVC 3应用程序,从visual studio本地运行时可以正常工作,
有两个bat文件预先编译应用程序以备部署,当我运行bat文件并将部署文件夹上传到Web服务器时,会抛出一堆错误,包括空异常错误,
通过访问以下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;
}
答案 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异常发生的元素。 要检查的事项: