我很沮丧……我的网站突然变得非常不稳定.这么多,一遍又一遍地刷新将导致它崩溃.为了调查,我关闭了所有错误处理,所以我可以看到一些YSOD.我没有尝试全部写出来,而是制作了一个显示问题的视频. You can see it here ...
我很沮丧……我的网站突然变得非常不稳定.这么多,一遍又一遍地刷新将导致它崩溃.为了调查,我关闭了所有错误处理,所以我可以看到一些YSOD.
我没有尝试全部写出来,而是制作了一个显示问题的视频. You can see it here on YouTube.
这是stacktrace的副本:
[InvalidCastException: Specified cast is not valid.]
System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult) +847
System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries) +113
System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) +344
System.Data.Linq.DataQuery`1.System.Linq.IQueryProvider.Execute(Expression expression) +23
System.Linq.Queryable.Count(IQueryable`1 source) +240
MvcPaging.PagedList`1.Initialize(IQueryable`1 source, Int32 index, Int32 pageSize, Nullable`1 totalCount) in C:\Users\BikGame\Desktop\src\MvcPaging\PagedList.cs:63
MvcPaging.PagedList`1..ctor(IQueryable`1 source, Int32 index, Int32 pageSize, Nullable`1 totalCount) in C:\Users\BikGame\Desktop\src\MvcPaging\PagedList.cs:25
MvcPaging.PagedList`1..ctor(IQueryable`1 source, Int32 index, Int32 pageSize) in C:\Users\BikGame\Desktop\src\MvcPaging\PagedList.cs:19
MvcPaging.PagingExtensions.ToPagedList(IQueryable`1 source, Int32 pageIndex, Int32 pageSize) in C:\Users\BikGame\Desktop\src\MvcPaging\PagingExtensions.cs:63
ApoAds.Controllers.HomeController.Index() in C:\Users\BikGame\Documents\Visual Studio 2008\Projects\APOAds-MultiBaseBiz\Controllers\HomeController.cs:22
lambda_method(ExecutionScope , ControllerBase , Object[] ) +39
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +17
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +178
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +24
System.Web.Mvc.<>c__DisplayClassa.<InvokeActionMethodWithFilters>b__7() +53
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +258
System.Web.Mvc.<>c__DisplayClassc.<InvokeActionMethodWithFilters>b__9() +20
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +258
System.Web.Mvc.<>c__DisplayClassc.<InvokeActionMethodWithFilters>b__9() +20
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +193
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +382
System.Web.Mvc.Controller.ExecuteCore() +123
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +23
System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +7
System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext) +144
System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext) +54
System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext) +7
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
在尝试加载的页面上,有两个ajax调用查看命中数据库,渲染表并返回html.站点顶部菜单的部分从数据库中提取,然后缓存以防止多次返回.托管在IIS6中的中等信任,共享环境中.
疯狂如何工作,然后停止工作3-4分钟然后再次工作…也许一个SQL连接挂起,然后几分钟后超时?
任何想法将非常感谢!提前致谢!
更新:添加数据访问代码
我在存储库模式中使用LINQ to SQL.这是一个AJAX调用正在使用的查询.
public IQueryable<Ad> FindAdsPerBase(string baseName, AdStatus status)
{
return (from ad in _db.Ads
join b in _db.AdBases on ad.AdID equals b.AdID
where b.MilBase.BaseName.ToLower() == baseName.ToLower() && ad.Status == (byte)status
select ad).Distinct().OrderByDescending(x => x.DateEntered);
}
并在控制器中调用它,如下所示:
var ads = _db.FindAdsPerBase(MilBase, AdStatus.Active).Take(11);
解决方法:
您没有提供足够的信息来进行故障排除,并且(没有冒犯)我没有前往YouTube观看视频.以下是我要采取的一些常规故障排除步骤以及我会问自己的问题:
>当它失败时,它总是完全相同的例外吗?或者它有变化吗?如果总是抛出相同的异常,那么你的逻辑中可能存在缺陷.如果您获得完全随机的异常,则可能存在硬件或基础结构问题.
>当您获得LINQ to SQL异常时,要做的第一件事就是连接SQL事件探查器以查看发送到服务器的确切查询语句.将其复制/粘贴到SQL Management Studio中并手动运行.查看结果并将它们与您正在加载的对象的数据类型进行比较:是否将空值映射到不可为空的字段?也许查询列被映射到不同类型的属性?
>如果它工作3-4分钟,然后停止3-4分钟,然后再次工作,在项目中查找任何特定于时间的代码.你在做任何缓存吗?也许这个问题与缓存陈旧时的行为相关,而不是陈旧时的行为,反之亦然.也许你有一个日期/时间计算溢出或为某些输入做一些时髦的事情?
>连接调试器并让它捕获异常.然后向上走堆栈跟踪并查看失败期间的程序状态.在应用程序正常工作时将其与程序状态进行比较.有什么突出的吗?
本文标题为:c# – 在我的ASP.NET MVC / AJAX站点上导致这些SQL转换错误的原因是什么? [视频显示问题]
基础教程推荐
- Unity 使用TexturePacker打包图集的操作方法 2023-04-27
- 进程间通信可以像进程内事件一样快(使用wcf和c#) 2023-09-20
- 算法证明每一位都相同十进制数不是完全平方数 2023-06-08
- C#使用SQL DataAdapter数据适配代码实例 2023-01-06
- unity实现手游虚拟摇杆 2023-02-16
- C# 中使用正则表达式匹配字符的含义 2023-01-06
- 深入理解C#管道式编程 2023-04-22
- c# – Windows服务不执行代码 2023-09-19
- C#实现DataTable数据行列转换 2023-06-04
- C#调用接口的四种方式介绍 2023-06-15