JQuery$.post在VS2010实例中有效,但在IIS 7.5中部署时无效
本文关键字:IIS 部署 无效 但在 有效 post VS2010 JQuery 实例 | 更新日期: 2023-09-27 18:20:31
我已经检查了$.Post中的url,它很好。我还检查了连接字符串。除了一个$.post命令外,包括$.ajax命令在内的整个网站上的一切都很好。我不断收到"保存记录时出错"的消息。
我的代码是在jquery对话框的Save按钮上:
var post = $.post(url,
$("#myview").serialize(),
function () {
thisDialog.dialog("close");
});
post.error(function (xhr, ajaxOptions, thrownError) {
alert("Error while saving the record");
当我在调试模式下运行时,这在本地VS实例中有效,但当我将网站部署到IIS 7.5时,它不会运行。有人能指导一下问题可能是什么吗?所有dll都存在,url也很好
url是:主页/启动
[HttpPost]
public ActionResult Start(StartModel model, FormCollection collection)
{
try
{
Service.Create(model);
return RedirectToAction("List");
}
这在VS中有效,但在IIS 7.5 中无效
我得到错误代码500
堆栈跟踪显示错误消息:SqlDateTime溢出。必须在1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间
我正在使用jquery日期控件设置日期值。欢迎提供任何指导。
将customErrors模式设置为"off"(在web.config中),然后调查firebug中的响应,您应该会看到从服务器返回的漂亮的堆栈跟踪。只要确保你的捕获块(你没有发布)看起来像:
try
{
// your code here
}
catch(Exception ex)
{
throw;
}
(请确保您没有执行throw-ex;因为那样会丢失堆栈跟踪)。
你可以从那里继续。
作为一种盲目的猜测,可能会发生:1.服务.创建(模型);失败(也许您没有从该机器访问"服务"的权限,或者2.你可能会发布太多数据,所以试着增加中的maxRequest长度
<configuration>
<system.web>
<httpRuntime maxRequestLength="102400" executionTimeout="1200" />
</system.web>
</configuration>
不过,了解堆栈跟踪会很有用。
如果不更改当前设置中的任何内容,它可能只是日期格式中的一个错误。不要通过日历控件将日期设置为1/2/2011
,而是尝试将其设置为1/2/2011 12:00:00 PM
或者重置datepicker
日期格式(此处为其他格式):
.datepicker({
dateFormat: 'mm/dd/yy'
});
您是否尝试通过导航器的开发工具捕获http请求?你看到请求了吗?服务器的响应是什么?
在没有更多信息的情况下,我只是在黑暗中拍摄,但可能是您使用了一个相对的URL,例如/bob/fred
,并且服务器的文件结构与您的本地应用程序不同。
假设您的应用程序采用以下结构:
/bob/fred <- the directory you're accessing in the $.post call
/jim/index.aspx <- the page you're calling $.post in
当你把它放在服务器上时,来自应用程序根的文件结构是这样的:
/site/bob/fred
/site/jim/index.aspx
在VS 2010中运行应用程序时,这是正确的。然而,在服务器上,它需要一个不同的URL。
下一步应该是使用Firebug检查$.post调用,看看你是否得到了404。如果是这样,以上信息应该会有所帮助。如果没有,请发布更多代码。