【问题标题】:Date filter not same behave Production and Development environment in c#日期过滤器在 c# 中的生产和开发环境的行为不同
【发布时间】:2021-08-17 21:36:45
【问题描述】:
DateTime minExpDate = aDetail.ExpiryDate.Date;
DateTime maxExpDate = aDetail.ExpiryDate.Date.AddDays(1);

var sp = GenService.GetAll<StockPosition>()
           .FirstOrDefault(r => r.WarehouseId == fromWarehouseId &&
           r.ProductId == aDetail.ProductId &&
           r.ExpiryDate >= minExpDate &&
           r.ExpiryDate < maxExpDate
           );

if (sp == null)
  {
   response.Message = "Not enough product available in stock";
   return response;
  }

当我从开发环境执行此代码时,它工作正常。我在 sp 中有一个对象。 但是当我在 IIS 中部署它时。并从生产环境运行它 sp get Null。 为什么从生产运行时会这样。 我在同一个 sql server 上运行它的开发和生产

【问题讨论】:

  • 你认为这是日期时间问题吗?如果它是一个不同的数据库(应该是),那么你在 prod 上的 dev 上就不会拥有相同的数据
  • @DamilolaAdegunwa 是的,这是日期时间问题。我已经测试过了。而且我已经使用具有相同数据的 diff sql 服务器。生产时显示相同的结果。
  • 检查开发服务器和生产服务器是否在同一时区
  • @Ygalbel 我使用同一台电脑进行生产和开发。
  • 尝试使用asp.net core logging记录日期值和查询结果(GenService.GetAll&lt;StockPosition&gt;()),生产开发中日期值和服务结果是否正确?

标签: c# asp.net asp.net-core asp.net-mvc-5


【解决方案1】:

我找到了解决方案。问题是从生产运行时 minExpDate 和 maxExpDate 发生变化。所以当我在 webconfig 文件中定义文化时,代码工作正常。

<configuration>
   <system.web>
      <globalization culture="en-GB"/>
   </system.web>
</configuration>

【讨论】:

    猜你喜欢
    • 2021-09-27
    • 2018-02-12
    • 2020-06-22
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 2017-12-20
    • 1970-01-01
    相关资源
    最近更新 更多