0

我有一个将数据插入数据库的 Web 服务(托管在 IIS 上)(Xampp)

[WebMethod]
public void Insert(int a)
{
        string query = "INSERT INTO result (A) VALUES('" + a + "')";          

        if (this.OpenConnection())
        {
            MySqlCommand cmd = new MySqlCommand(query, connection);   
            cmd.ExecuteNonQuery();       
            this.CloseConnection();
        }
}

我第一次使用此 Web 服务时,它很有魅力,但第二次尝试再次使用此服务时,它返回一条错误消息

“操作已超时”

在我的编码上

s1.Insert(a);

当我在 IIS 中重新启动 Web 服务时,Web 服务再次正常工作,但它无法正常工作,因为它必须连续工作。有什么希望吗?

4

2 回答 2

0

似乎您与服务器的连接有问题,我认为打开与服务器的连接需要花费太多时间,这会导致超时,因此您必须调试这种情况并确保与服务器的连接没关系。

于 2012-05-17T10:20:34.300 回答
0

我可以看到的问题可能是您的 this 对象仍然存在第二次调用,但它无法打开连接。

使您的班级成为对象,而不是使用它。

例如

[WebMethod]
public void Insert(int a)
{
        string query = "INSERT INTO result (A) VALUES('" + a + "')";          
        YourClass obj = new YourClass();
        //Open connection here
        if (obj.OpenConnection())
        {
            MySqlCommand cmd = new MySqlCommand(query, connection);   
            cmd.ExecuteNonQuery();       
            this.CloseConnection();
        }
        else
            throw new Exception("Problem in opening connection");
}
于 2012-05-17T10:25:30.557 回答