代码之家  ›  专栏  ›  技术社区  ›  ANaimi

高流量时ASP.NET-MVC(IIS6)错误:指定的强制转换无效

  •  8
  • ANaimi  · 技术社区  · 16 年前

    我刚刚启动了我的 tiny webapp 在我的简易专用服务器(Win2003)上。。。运行ASP.NET MVC、LINQ2SQL、SQL Express 2005和IIS6(使用 wildcard mapping )

    该网站90%的时间运行平稳。但是, 相当地 高流量,LINQ2SQL抛出错误: 指定的强制转换无效

    不知道 这是如何发生的,或者为什么会发生。缓存并没有完全消除这个问题。

    以前有人见过这个问题吗?是否有任何我应该做的秘密SQL Server调整? 因为我出去了!

    奈米

    at System.Data.SqlClient.SqlBuffer.get_SqlGuid()
       at System.Data.SqlClient.SqlDataReader.GetGuid(Int32 i)
       at Read_Friend(ObjectMaterializer`1 )
       at System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader`2.MoveNext()
       at Dudlers.Web.Models.DudlersDataContext.GetFriendRequests(Guid userId) in C:\Web\Models\DudlersDataContext.cs:line 562
       at Dudlers.Web.Controllers.BaseController.View(String viewName, String masterName, Object viewData) in C:\Web\Controllers\BaseController.cs:line 39
       at System.Web.Mvc.Controller.View(String viewName)
       at Dudlers.Web.Controllers.CatController.Index() in C:\Web\Controllers\CatController.cs:line 25
       at lambda_method(ExecutionScope , ControllerBase , Object[] )
       at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(MethodInfo methodInfo, IDictionary`2 parameters)
       at System.Web.Mvc.ControllerActionInvoker.c__DisplayClassb.b__8()
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
       at System.Web.Mvc.ControllerActionInvoker.c__DisplayClassb.c__DisplayClassd.b__a()
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(MethodInfo methodInfo, IDictionary`2 parameters, IList`1 filters)
       at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
       at System.Web.Mvc.Controller.ExecuteCore()
       at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
       at System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext)
       at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext)
       at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext)
       at System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext)
       at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
       at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
    
    2 回复  |  直到 16 年前
        1
  •  7
  •   Community clintgh    7 年前

    stacktraces示例

    System.InvalidCastException: Unable to cast object of type 'System.Int32' to type 'System.String'.
       at System.Data.SqlClient.SqlBuffer.get_String()
       at System.Data.SqlClient.SqlDataReader.GetString(Int32 i)
       at Read_Person(ObjectMaterializer`1 )
       at System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader`2.MoveNext()
       at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
       at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
       at RF.Ias.Services.Person.BusinessLogic.PersonTransactionScripts.GetPersons(IEnumerable`1 personIds, Boolean includeAddress, Boolean includeContact)
       at CompositionAopProxy_5b0727341ad64f29b816c1b73d11dd44.GetPersons(IEnumerable`1 personIds, Boolean includeAddress, Boolean includeContact)
       at RF.Ias.Services.Person.ServiceImplementation.PersonService.GetPersons(GetPersonRequest request)
    
    
    System.InvalidCastException: Specified cast is not valid.
       at System.Data.SqlClient.SqlBuffer.get_Int32()
       at System.Data.SqlClient.SqlDataReader.GetInt32(Int32 i)
       at Read_GetRolesForOrganisationResult(ObjectMaterializer`1 )
       at System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader`2.MoveNext()
       at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
       at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
       at RF.Ias.Services.Role.DataAccess.RoleDataAccess.GetRolesForOrganisation(GetRolesForOrganisationCriteria criteria, Int32 pageIndex, Int32 pageSize, Int32& recordCount)
       at RF.Ias.Services.Role.BusinessLogic.RoleTransactionScripts.GetRolesForOrganisation(GetRolesForOrganisationCriteria criteria, Int32 pageIndex, Int32 pageSize, Int32& recordCount)
       at CompositionAopProxy_4bd29c6074f54d10a2c09bd4ab27ca66.GetRolesForOrganisation(GetRolesForOrganisationCriteria criteria, Int32 pageIndex, Int32 pageSize, Int32& recordCount)
       at RF.Ias.Services.Role.ServiceImplementation.RoleService.GetRolesForOrganisation(GetRolesForOrganisationRequest request)
    

    第一个异常发生在DataCOntext的另一个实例上,然后发生在后面的所有实例上。

    经过一些研究和询问后 thread ,我发现原因是我没有处理DataContext。在我开始这样做之后,它就消失了。

        2
  •  3
  •   Joel Coehoorn    16 年前

    听起来可能是比赛状态,也可能是 稀有的 这只虫子