How to increase time in web.config for executing sql query

前端 未结 5 1867
故里飘歌
故里飘歌 2020-12-31 10:56

When I am running a query in web application, I\'m getting a null value. Same query directly in SQL Management Studio returns results.

I think that the

5条回答
  •  无人及你
    2020-12-31 11:34

    I realise I'm a litle late to the game, but just spent over a day on trying to change the timeout of a webservice. It seemed to have a default timeout of 30 seconds. I after changing evry other timeout value I could find, including:

    • DB connection string Connect Timeout
    • httpRuntime executionTimeout
    • basicHttpBinding binding closeTimeout
    • basicHttpBinding binding sendTimeout
    • basicHttpBinding binding receiveTimeout
    • basicHttpBinding binding openTimeout

    Finaley I found that it was the SqlCommand timeout that was defaulting to 30 seconds.

    I decided to just duplicate the timeout of the connection string to the command. The connection string is configured in the web.config.

    Some code:

    namespace ROS.WebService.Common
    {
      using System;
      using System.Configuration;
      using System.Data;
      using System.Data.SqlClient;
    
      public static class DataAccess
      {
        public static string ConnectionString { get; private set; }
    
        static DataAccess()
        {
          ConnectionString = ConfigurationManager.ConnectionStrings["ROSdb"].ConnectionString;
        }
    
        public static int ExecuteNonQuery(string cmdText, CommandType cmdType, params SqlParameter[] sqlParams)
        {
          using (SqlConnection conn = new SqlConnection(DataAccess.ConnectionString))
          {
            using (SqlCommand cmd = new SqlCommand(cmdText, conn) { CommandType = cmdType, CommandTimeout = conn.ConnectionTimeout })
            {
              foreach (var p in sqlParams) cmd.Parameters.Add(p);
              cmd.Connection.Open();
              return cmd.ExecuteNonQuery();
            }
          }
        }
      }
    }
    

    Change introduced to "duplicate" the timeout value from the connection string:CommandTimeout = conn.ConnectionTimeout

提交回复
热议问题