我使用ASP.NET MVC和Knockoutjs构建了一个网站。它托管在Windows Sever 2012上的IIS上。还有另一个Web应用程序,我使用ajax进行POST,该应用程序不会出现任何错误。使用单击绑定到此功能绑定网站上的“提交”按钮。这在我在localhost上以调试模式运行时有效。
self.SubmitEvaluation = function () {
reqUrl = "/Home/SubmitEvaluation";
$.ajax({
type: "POST",
url: reqUrl,
data: JSON.stringify({ evaluation: ko.toJSON(self) }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
if (response == 1) {
self.EvalComplete(true);
} else {
self.EvalComplete(false);
alert("Submission Failed. Please resubmit!!!")
}
},
error: function (jqXHR, exception) {
if (jqXHR.status === 0) {
alert('Not connect.\n Verify Network.');
} else if (jqXHR.status == 404) {
alert('Requested page not found. [404]');
} else if (jqXHR.status == 500) {
alert('Internal Server Error [500].'+exception.toString());
} else if (exception === 'parsererror') {
alert('Requested JSON parse failed.');
} else if (exception === 'timeout') {
alert('Time out error.');
} else if (exception === 'abort') {
alert('Ajax request aborted.');
} else {
alert('Uncaught Error.\n' + jqXHR.responseText);
}
}
});
在家庭控制器中,我有这两种网络方法。
[HttpGet]
public string Test()
{
Logger.Logger.WriteLog("Test", "Inside Test");
TestModel product = new TestModel();
product.Name = "Apple";
product.Price = "3.99M";
return JsonConvert.SerializeObject(product);
}
[HttpPost]
public int SubmitEvaluation(string evaluation)
{
Logger.Logger.WriteLog("Submitevaluation", "Inside SubmitEvaluation");
int result = -1;
try
{
EvaluationModel eval = JsonConvert.DeserializeObject<EvaluationModel>(evaluation);
MySqlConnection conn = new MySqlConnection(connStr);
conn.Open();
string sql = "INSERT INTO xyz table blah blah blah";
MySqlCommand cmd = new MySqlCommand(sql, conn);
result = cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
Logger.WriteLog("Submitevaluation", ex.ToString());
}
return result;
}
当我点击“提交”按钮时,我从Ajax请求收到内部服务器错误500。
但是如果我这样做http://xxx.xxx.xxx.xxx/Home/Test我得到了json结果{“Name”:“Apple”,“Price”:“3.99M”}。
来自Fiddler的回复标题
HTTP / 1.1 500内部服务器错误 缓存控制:私有 内容类型:text / html;字符集= utf-8的 服务器:Microsoft-IIS / 8.0 X-AspNetMvc-Version:4.0 X-AspNet-Version:4.0.30319 X-Powered-By:ASP.NET 日期:星期四,2014年1月9日16:22:16 GMT 内容长度:276
在打开客户错误和详细错误消息后,我收到此消息。
Could not load file or assembly 'MySql.Data, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' or one of its dependencies. The system cannot find the file specified
我从http://dev.mysql.com/downloads/connector/net/下载了Mysql连接器,我通过右键单击References&gt;添加了程序集。扩展并选择4.0版本。我也试过4.5。
答案 0 :(得分:1)
卸载6.8并下载6.7。立即行动。