簡體   English   中英

Webservice + consumer c#error服務器無法處理請求。 --->連接已經打開

[英]Webservice+consumer c# error Server was unable to process request. ---> The connection is already open

我有一個web服務和一個comsumer,webservice有它的方法,它從mysql數據庫返回數據。 在我打電話的消息中

WebService.Service1 Service = new WebService.Service1();        

在開始時(不在一個方法中)當消費者開始詢問數據時,它將在10分鍾內提出20個請求,首先15-18個請求完美地工作但最后幾次它返回錯誤

服務器無法處理請求。 --->連接已經打開。

我希望我提供了這樣的足夠信息,我寧願不發布代碼。

這是webservice的方法:

        public string GetAnswer(string Question, string Option1, string Option2, string Option3, string Option4)
    {
        string connstring = "Server=Server;Port=3306;Database=DB;UID=User;password=pw;";
        MySqlConnection conn = new MySqlConnection(connstring);
        MySqlCommand command = conn.CreateCommand();

        command.CommandText = "SELECT * FROM `tbl` where `Question` = '" + Question + "' LIMIT 1";
        conn.Open();

        MySqlDataReader reader = command.ExecuteReader();
        if (reader.HasRows)
        {
            string TheAnswer = "";
            while (reader.Read())
            {
                string question = reader["Question"].ToString();
                string answer = reader["Answer"].ToString();
                if (Option1.Equals(answer))
                    TheAnswer = Option1;
                if (Option2.Equals(answer))
                    TheAnswer = Option2;
                if (Option3.Equals(answer))
                    TheAnswer = Option3;
                if (Option4.Equals(answer))
                    TheAnswer = Option4;
            }
            conn.Close();
            conn.Dispose();
            return TheAnswer;
        }
        else
        {
            MySqlCommand command2 = conn.CreateCommand();
            command.CommandText = "Insert Into `new` (`Question`, `Answer1`,`Answer2`,`Answer3`,`Answer4`) VALUES ('" + Question + "','" + Option1 + "','" + Option2 + "','" + Option3 + "', '" + Option4.Replace("~", " ") + "')";
            conn.Open();
            command.ExecuteNonQuery();

            conn.Close();
            conn.Dispose();
            return "Error: Question is unknown, saving the question to get it answered.";
        }
    }

你的else語句中有conn.open() ,之前已經打開了連接。 您應該考慮使用using語句:

using (MySqlConnection conn = new MySqlConnection(connstring))
{
  using (MySqlCommand command2 = conn.CreateCommand())
  {
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM