我有這個應用程序可以在本地工作,並在部署和使用.mdf SQL Express數據庫文件(我通常用於測試目的)時使用。但是,當我將其更改爲使用SQL Server 2008時,該應用程序可以正常工作,但該服務不會。WCF服務返回400錯誤請求
例如,如果在一個頁面中我有一個按鈕,將數據添加到表的後面我的代碼,例如這樣正常工作:
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錯誤請求錯誤。
爲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;
}
如果不是查詢數據庫我有服務僅返回靜態數據,然後它工作正常。 什麼可能導致我的服務無法連接到數據庫,當應用程序的其餘代碼工作?
當您調試服務時它會拋出任何錯誤嗎? – Marcus 2011-03-18 21:40:32