C# ArgumentOutOfRangeException,2012服务器上的IIS express
我的所有控制器操作都呈现良好,只有一个除外 我已经找到了其他与IIS express相关的解决方案,但是它正在服务器2012上运行 以下是控制器操作:C# ArgumentOutOfRangeException,2012服务器上的IIS express,c#,asp.net-mvc,C#,Asp.net Mvc,我的所有控制器操作都呈现良好,只有一个除外 我已经找到了其他与IIS express相关的解决方案,但是它正在服务器2012上运行 以下是控制器操作: public ActionResult Index() { try { var viewModels = GetHostInfoViewModelList(); return View(viewModels); } catch
public ActionResult Index()
{
try
{
var viewModels = GetHostInfoViewModelList();
return View(viewModels);
}
catch (Exception ex)
{
ex.ReportError();
return new HttpStatusCodeResult(404,$"{ex.Message}|{ex.InnerException}");
}
}
以下是GetHostInfoViewModelList:
public IEnumerable<ViewModelHostInfo> GetHostInfoViewModelList()
{
using (var db = new WINCMUEntities())
{
try
{
//join host info with sleep status
var sleepRecords = db.SleepTrackings.ToList();
var hostInfo = db.WINCMU_HostInfo.ToList();
var viewModels = new List<ViewModelHostInfo>();
hostInfo.ForEach(x =>
{
viewModels.Add(new ViewModelHostInfo()
{
HostName = x.HostName ?? "Not Found",
Id = x.ID,
newsystem = x.newsystem,
Zone = x.Zone ?? "Not Found",
IsSleeping = sleepRecords.FirstOrDefault(s => s.HostName.ToLower() == x.HostName.ToLower())
?.IsCurrentlySleeping ?? false,
IP_address = x.IP_address ?? "Not Found",
ReportingArea = x.ReportingArea ?? "Not Found",
agent_active = x.agent_active,
date_added = x.date_added,
is_agent = x.is_agent
});
});
return viewModels;
}
catch (Exception ex)
{
ex.ReportError();
throw;
//return new List<ViewModelHostInfo>();
}
}
}
public IEnumerable GetHostInfoViewModelList()
{
使用(var db=new wincmueentities())
{
尝试
{
//加入具有睡眠状态的主机信息
var sleepRecords=db.SleepTrackings.ToList();
var hostInfo=db.WINCMU_hostInfo.ToList();
var viewModels=新列表();
hostInfo.ForEach(x=>
{
添加(新的ViewModelHostInfo()
{
HostName=x.HostName??“未找到”,
Id=x.Id,
newsystem=x.newsystem,
区域=x。区域??“未找到”,
IsSleeping=sleepRecords.FirstOrDefault(s=>s.HostName.ToLower()==x.HostName.ToLower())
?当前正在睡觉?错误,
IP_地址=x.IP_地址??“未找到”,
ReportingArea=x.ReportingArea???“未找到”,
agent\u active=x.agent\u active,
添加日期=x.添加日期,
is_agent=x.is_agent
});
});
返回视图模型;
}
捕获(例外情况除外)
{
例如,ReportError();
投掷;
//返回新列表();
}
}
}
以下是完整的错误文本:[ArgumentOutOfRangeException:指定的参数超出有效值的范围。 参数名称:值] System.Web.HttpResponse.set_StatusDescription(字符串值)+4538824 System.Web.Mvc.HttpStatusCodeResult.ExecuteResult(ControllerContext上下文)+109 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList
1过滤器、Int32过滤器索引、ResultExecutingContext预文本、ControllerContext ControllerContext、ActionResult ActionResult)+88
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList
1过滤器、Int32过滤器索引、ResultExecutingContext预文本、ControllerContext ControllerContext、ActionResult ActionResult)+775
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext ControllerContext,IList1过滤器,ActionResult ActionResult)+81
System.Web.Mvc.Async.c__显示类3_1.b_5(IAsyncResult asyncResult)+188
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult)+38
System.Web.Mvc.c.b__152_1(IAsyncResult asyncResult,ExecuteCorerate innerState)+26
System.Web.Mvc.Async.WrappedAsyncVoid
1.CallEndDelegate(IAsyncResult asyncResult)+68
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)+52
System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult)+39
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)+38
System.Web.Mvc.c.b_20_1(IAsyncResult asyncResult,ProcessRequestState innerState)+40
System.Web.Mvc.Async.WrappedAsyncVoid
1.CallEndDelegate(IAsyncResult asyncResult)+68
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)+38
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+602
System.Web.HttpApplication.executesteppl(IExecutionStep步骤)+195
System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)+128
错误消息指出,在设置响应状态时发生异常: [ArgumentOutOfRangeException:指定的参数超出有效值的范围。参数名称:value]
System.Web.HttpResponse.set\u StatusDescription
(字符串值)+4538824
您的代码未设置404状态结果的标准描述:
return new HttpStatusCodeResult(404,$"{ex.Message}|{ex.InnerException}");
将此更改为:
return new HttpStatusCodeResult(404,"Not Found");
您可以省略说明,但如果设置了说明,则说明必须与状态代码相匹配。这是自己造成的
GetHostInfoViewModelList引发了异常
GetHostInfoViewModelList()的源代码是什么?你的问题可能就在那里。你有没有尝试过单步检查你的代码,看看它到底掉到哪里了?谢谢你!这个方法有一个throw关键字,它破坏了一切。