我使用 Visual Studio 在 C# 中创建了一个 Web 服务,它连接到我 PC 上的 MySql DB。在调试模式下效果很好,我可以使用 web 方法并执行查询。但是,由于我在主机上发布了 Web 服务,因此 Web 服务不再工作。这是代码,以防万一:
DbConnect.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MySql.Data.MySqlClient;
namespace WebService1
{
public class DBConnect
{
private MySqlConnection connection;
private string server;
private string database;
private string uid;
private string password;
//Costruttore
public DBConnect()
{
Initialize();
}
//Inizializzazione dei valori
private void Initialize()
{
string connectionString;
server = "localhost";
database = "cartellodb";
uid = "OCRUser";
password = "admin";
connectionString = "SERVER=" + server + ";" + "DATABASE=" + database + ";" +
"UID=" + uid + ";" + "PASSWORD=" + password + ";";
connection = new MySqlConnection(connectionString);
}
private bool OpenConnection()
{
try
{
connection.Open();
return true;
}catch (MySqlException e) {
switch (e.Number) {
case 0:
Console.WriteLine("Impossibile connettersi al server");
break;
case 1045:
Console.WriteLine("Password/username non validi. Riprovare");
break;
}
return false;
}
}
private bool CloseConnection()
{
try
{
connection.Close();
return true;
}catch (MySqlException e){
Console.WriteLine(e.Message);
return false;
}
}
public string Insert(string lat, string lon, string text)
{
string query = "INSERT INTO Cartello VALUES (" + lat + "," + lon + ",'" + text + "');";
//apertura connessione
if (this.OpenConnection() == true)
{
//creazione ed istanziazione comando ed assegnazione della query e della connessione al comando
MySqlCommand cmd = new MySqlCommand(query, connection);
//esecuzione query
cmd.ExecuteNonQuery();
}
this.CloseConnection();
return "Inserimento dati completato con successo";
}
public string Test(string lat, string lon, string text)
{
string query = "SELECT * FROM Cartello WHERE latitude = " + lat + " AND longitude = " + lon + " AND testo = '" + text + "';";
string result = "", queryResult = "";
//apertura connessione
if(this.OpenConnection() == true)
{
//creazione ed istanziazione comando ed assegnazione della query e della connessione al comando
MySqlCommand cmd = new MySqlCommand(query, connection);
//creazione ed istanziazione del Data Reader che conterrà il risultato della query alla tabella
MySqlDataReader dataReader = cmd.ExecuteReader();
while(dataReader.Read())
queryResult = dataReader.GetString(0);
if(queryResult.CompareTo("") == 0)
result = "NOTEXISTS";
else
result = "EXISTS";
dataReader.Close();
this.CloseConnection();
}
return result;
}
}
}
服务1.asmx.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using MySql.Data.MySqlClient;
namespace WebService1
{
/// <summary>
/// Descrizione di riepilogo per Service1
/// </summary>
[WebService(Namespace = "http://ocrwebservice.somee.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// Per consentire la chiamata di questo servizio Web dallo script utilizzando ASP.NET AJAX, rimuovere il commento dalla riga seguente.
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public string InsertIntoDB(string latitudine, string longitudine, string testo)
{
DBConnect dbObject = new DBConnect();
string result;
result = dbObject.Insert(latitudine, longitudine, testo);
return result;
}
[WebMethod]
public string Testing(string latitudine, string longitudine, string testo)
{
DBConnect dbObject = new DBConnect();
string result;
result = dbObject.Test(latitudine, longitudine, testo);
return result;
}
}
}
请问,谁能帮我解决这个问题?提前致谢。