ASP.NET と JQuery を使用して Web サービスを呼び出すと、500 サーバー エラーが発生します。応答を表示します。
応答の一部:
{"Message":"Object reference not set to an instance of an object.","StackTrace":"
それをスローする行は次のとおりです。
db.SaveChanges();
ローカル コンピューターでサイトを実行すると、AWS 上の Windows Server 2012 でのみエラーがスローされます。もう1つは、リモートでデバッグできないことです。
データベースが初期化され、テーブルに追加するデータも初期化されますテーブルに入力されているデータを再確認しましたが、データを手動で入れて確認しましたが、エラーは引き続き発生します。
id変数は関数の引数から取得されます。初期化されていない場合、コードは実行されません。
コード:
using (siteEntities db = new siteEntities()){
{
var c_weekly = (from weekly in db.counters_weekly
where weekly.product_id == id
select weekly).SingleOrDefault();
if (c_weekly == null) {
counters_weekly cw = new counters_weekly();
cw.count = 0;
cw.product_id = id;
cw.year = DateTime.UtcNow.Year;
cw.week_number = GetIso8601WeekOfYear(DateTime.Now);
db.counters_weekly.Add(cw);
db.SaveChanges(); <== THROWS ERROR!!!!
c_weekly = (from weekly in db.counters_weekly
where weekly.product_id == id
select weekly).SingleOrDefault();
}
long weekly_old_count = c_weekly.count;
c_weekly.count = weekly_old_count + Global.DataCounters[id];
db.SaveChanges();
}
エンティティ Framrwork によって生成:
public partial class counters_weekly
{
public decimal id { get; set; }
public long product_id { get; set; }
public int week_number { get; set; }
public long count { get; set; }
public int year { get; set; }
}
どんな説明でも。オンラインでデバッグする簡単な方法があれば、私はそれを実行したでしょう。これについて本当にあなたの助けが必要です。ありがとう。
DB:MySQL
サーバー: Windows Server 2012 EC2 AWS
使用: 最新の .NET コネクタ