मैं एक स्क्रिप्ट है कि 4mins30seconds के बारे में के लिए चलाता है और मैं अपने aspx वेबपेज के config पेज में 3600 सेकंड के लिए समय डिफ़ॉल्ट टाइमआउट को बदल दिया है500 - अनुरोध की अवधि समाप्त [Updated]
यह वापस नहीं किया था 500 - अनुरोध ने संस्करण संस्करण और आईआईएस 8 पर अपलोड किए गए संस्करण पर त्रुटि का समय समाप्त किया।
हालांकि जब मैंने इसे एज़ूर में लाइव साइट पर अपलोड किया, तो यह 500 लौटाता है - अनुरोध का समय समाप्त हो गया है।
क्या Azure इन सेटिंग्स को ओवरराइट करता है?
कॉन्फिग:
<configuration>
<system.web>
<httpRuntime executionTimeout="3600" />
<sessionState timeout="360" />
<compilation debug="false" targetFramework="4.0">
<assemblies>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral/>
</assemblies>
</compilation>
</system.web>
</configuration>
संपादित करें:
मैं 3600 मूल्य के साथ नीला आवेदन सेटिंग्स में SCM_COMMAND_IDLE_TIMEOUT जोड़ा लेकिन यह त्रुटि को ठीक नहीं किया था, अब मेरी कोड के प्रदर्शन में सुधार करने की कोशिश कर:
मूल:
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
Dictionary<int, Dictionary<DateTime, float>> d_PhoneNo_DateDataList = new Dictionary<int, Dictionary<DateTime, float>>();
string sqlcommand = "SELECT ---- FROM ---- INNER JOIN ---- ON ---- = ---- WHERE [email protected] AND date BETWEEN @Date1 AND @Date2";
string strConnectionString = ConfigurationManager.ConnectionStrings["---"].ConnectionString;
using (SqlConnection conn = new SqlConnection(strConnectionString))
{
Dictionary<DateTime, float> d_DateTime_Data;
using (SqlCommand cmd = new SqlCommand(sqlcommand, conn))
{
cmd.Parameters.Add("@PhoneNo", SqlDbType.Int);
cmd.Parameters.AddWithValue("@Date1", dateStart);
cmd.Parameters.AddWithValue("@Date2", dateEnd.AddDays(1));
conn.Open();
for (int i = 0; i < phoneNo.Count; i++)
{
d_DateTime_Data = new Dictionary<DateTime, float>();
cmd.Parameters["@PhoneNo"].Value = phoneNo[i];
cmd.ExecuteNonQuery();
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
d_DateTime_Data.Add(DateTime.Parse(reader["Date"].ToString()), float.Parse(reader["Data"].ToString()));
}
}
d_PhoneNo_DateDataList.Add(phoneNo[i], d_DateTime_Data);
}
conn.Close();
}
}
मैंने एक संगीत का उपयोग करने की कोशिश की Parallel.For साथ urrentDictionary लेकिन यह DataReader
ConcurrentDictionary<int, Dictionary<DateTime, float>> d_PhoneNo_DateDataList = new ConcurrentDictionary<int, Dictionary<DateTime, float>>();
string sqlcommand = "SELECT ---- FROM ---- INNER JOIN ---- ON ---- = ---- WHERE [email protected] AND date BETWEEN @Date1 AND @Date2";
string strConnectionString = ConfigurationManager.ConnectionStrings["----"].ConnectionString;
using (SqlConnection conn = new SqlConnection(strConnectionString))
{
Dictionary<DateTime, float> d_DateTime_Data;
using (SqlCommand cmd = new SqlCommand(sqlcommand, conn))
{
cmd.Parameters.Add("@PhoneNo", SqlDbType.Int);
cmd.Parameters.AddWithValue("@Date1", dateStart);
cmd.Parameters.AddWithValue("@Date2", dateEnd.AddDays(1));
conn.Open();
Parallel.For(0, phoneNo.Count, (index) =>
{
d_DateTime_Data = new Dictionary<DateTime, float>();
cmd.Parameters["@PhoneNo"].Value = phoneNo[index];
cmd.ExecuteNonQuery();
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
d_DateTime_Data.Add(DateTime.Parse(reader["Date"].ToString()), float.Parse(reader["Data"].ToString()));
}
}
d_PhoneNo_DateDataList.TryAdd(phoneNo[index], d_DateTime_Data);
});
conn.Close();
}
}
के लिए विन्यास निष्क्रिय टाइमआउट आप ब्राउज़र में इस त्रुटि मिलती है? या आप इस पेज को दूसरी जगह से बुला रहे हैं? –
मुझे ब्राउज़र में मिला, एक त्रुटि पृष्ठ की तरह –
आपका एप्लिकेशन कैसे तैनात किया गया है? क्या यह एक वेब ऐप के रूप में चल रहा है या वीएम/क्लाउड सेवा के अंदर चल रहा है? –