2017-07-26 4 views
0

私はAsp.Net MVCとEdmxデータベースを使用してウェブサイトを開発しました。私はこのウェブサイトをazureに公開しました。私のデータベースもazureにあります。そのシートをアップロードするたびにTimeoutエラーが出るので、私は何をすべきですか?ここでEdmxでタイムアウト500エラー

コンストラクタで当初、私は任意のコマンドのタイムアウトを使用していませんでしたが、いくつかの研究を行った後、私はこれを使用してい

enter image description here

public ProfessionalServicesEntities() 
     : base("name=ProfessionalServicesEntities") 
    { 
     this.Database.CommandTimeout = 10000; 
     //this.Database.CommandTimeout = 0; //I tried this too. 

     //((IObjectContextAdapter)this).ObjectContext.CommandTimeout = 3600; 
    } 

は 関数のコードは次のとおりです。 -

public void SaveEquipments(IEnumerable<EquipSampleEntity> collection) 
    { 
     using (ProfessionalServicesEntities db = new ProfessionalServicesEntities()) 
     { 
      string modelXml = XmlSerialization.ListToXml(collection.Where(x=>x.Type == Model).ToList()); 
      string accessoryXml = XmlSerialization.ListToXml(collection.Where(x => x.Type == Accessory).ToList()); 
      db.ImportEquipmentFile(modelXml, accessoryXml); 
     } 
    } 

ここはSPのコンテキストファイルのコードです: -

public virtual int ImportEquipmentFile(string modelXml, string accessoryXml) 
    { 
     var modelXmlParameter = modelXml != null ? 
      new ObjectParameter("ModelXml", modelXml) : 
      new ObjectParameter("ModelXml", typeof(string)); 

     var accessoryXmlParameter = accessoryXml != null ? 
      new ObjectParameter("AccessoryXml", accessoryXml) : 
      new ObjectParameter("AccessoryXml", typeof(string)); 

     return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("ImportEquipmentFile", modelXmlParameter, accessoryXmlParameter); 
    } 
+0

方法@jamiedanq – jamiedanq

+0

を処理するための指定された時間を増やしますか? – Abhay

+0

ファイルのアップロード、使用しているweb.config&データコンテキスト(存在する場合)のコードを表示できますか?タイムアウトに達するまでに何回経過したか?また、あなたが 'ObjectContext.CommandTimeout'にある値を割り当てられているかどうかを知りたいと思います。 –

答えて

0

自分自身をアップロードして行ごとに処理する際にExcelを処理している可能性があります。 2つのオプションがあります.1つはバックグラウンドジョブをスケジュールしてアップロードファイルを取得し、それをDBに挿入して要求を完了することです。

次のオプションは、ファイル全体を一度に読み取り、DBに1つの一括挿入を行うことです。

+0

実際には、私はストアドプロシージャにxmlを渡しています。パラメータとしてxmlをとり、openxmlを使用してデータをDBに挿入します。 – Abhay

0

これを引き起こす原因は多すぎます。 Azure App Serviceには240秒のタイムアウトを持つフロントエンドがあります。アプリケーションの処理に時間がかかる場合は、これを実行する可能性があります。これは考えられる原因の1つである可能性があります。

何が起こっているのかを理解するためです。有効Webサーバーのログおよび失敗した要求のトレース

Diagnostic logs

さらに続行する方法のためにこれを参照してください。​​

+0

これは動作していません – Abhay

+0

何が動作していません。詳細を追加できますか? –