У меня есть это приложение, которое работает локально и при развертывании и использует файл базы данных SQL Express .mdf (который я обычно использую для целей тестирования). Однако когда я переключаю его на работу с нашим SQL Server 2008, приложение работает, а служба - нет.
Например, если в моем коде позади страницы у меня есть кнопка, которая добавляет данные в таблицу, такую как эта, она отлично работает:
public static string connString = @"Data Source=server1;Initial Catalog=Project;Integrated Security=True";
protected void btnAddProj_Click(object sender, EventArgs e)
{
using (var sqlc = new SqlConnection(connString))
{
sqlc.Open();
var cmd = sqlc.CreateCommand();
int intProjectID;
// Add the project info to the database
cmd.CommandText = "INSERT INTO tblProject VALUES(@ProjName,@ProjTeam,@ProjStart,@ProjEnd)";
cmd.Parameters.Add("ProjName", System.Data.SqlDbType.NVarChar).Value = txtProjName.Text;
cmd.Parameters.Add("ProjTeam", System.Data.SqlDbType.Int).Value = ddlTeamSupported.SelectedValue;
cmd.Parameters.Add("ProjStart", System.Data.SqlDbType.NVarChar).Value = txtStartDate.Text;
cmd.Parameters.Add("ProjEnd", System.Data.SqlDbType.NVarChar).Value = txtEndDate.Text;
cmd.ExecuteNonQuery();
}
}
Мой web.config настроен на использование олицетворения на этом сервере, и все работает отлично. Тем не менее, для моего сервиса запрос, похоже, ничего не возвращает, и я получаю 400 Ошибка Bad Request.
Код для jquery:
$.ajax({
type: "POST",
async: false,
url: "Services/ProjectService.svc/test",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
console.log(data);
}
});
А для службы:
[ServiceContract]
public interface IProjectService
{
[OperationContract]
[WebInvoke(ResponseFormat = WebMessageFormat.Json)]
ArrayList test();
}
public static string connString = @"Data Source=server1;Initial Catalog=Project;Integrated Security=True";
public ArrayList test()
{
var sqlc = new SqlConnection(connString);
sqlc.Open();
var cmd = sqlc.CreateCommand();
cmd.CommandText = "SELECT ProjectID FROM tblProject";
var reader = cmd.ExecuteReader();
ArrayList temparray = new ArrayList();
while (reader.Read())
{
temparray.Add(reader[0]);
}
sqlc.Close();
return temparray;
}
Если вместо запроса к базе данных у меня есть служба, которая просто возвращает статические данные, она работает нормально.
Что может привести к тому, что мой сервис не сможет подключиться к базе данных, когда остальная часть кода приложения будет работать?