一、背景因为项目需要,在做windows相关的东西;基本架构是Nginx-->Nginx-->IIS,我在Linux机器上使用Nginx作为WindowsIIS的反向代理;那么直接使用IIS的IP访问就没有问题了;只要经过Nginx的反向代理,部分地方就会报错;错误详情如下:1)SurfaceerrorServerError,未保存的更改可能已经丢失,请重新加载页面再继续。2)浏览器检查报错3)应用层具体日志报错如下.HttpAntiForgeryException"message="所需的防伪表单字段“__RequestVerificationToken”不存在。source="System.Web.WebPages"detail="System.Web.Mvc.HttpAntiForgeryException(0x80004005):所需的防伪表单字段“__RequestVerificationToken”不存在。
在System.Web.Helpers.AntiXsrf.TokenValidator.ValidateTokens(HttpContextBasehttpContext,IIdentity身份,AntiForgeryTokensessionToken,AntiForgeryToken); 在System.Web.Helpers.AntiXsrf.AntiForgeryWorker.Validate(HttpContextBasehttpContext,字符串cookieToken,字符串formToken)
在SunGard.AvantGard.Web.Infrastructure.AntiForgeryHelper.Validate()
在SunGard.AvantGard.Web.Infrastructure.UseAntiForgeryTokenOnPostByDefault.OnActionExecuting(ActionExecutingContextfilterContext)
在System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.InvokeActionMethodFilterAsynchronouslyRecursive(Int32filterIndex)
在System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.InvokeActionMethodFilterAsynchronouslyRecursive(Int32filterIndex)
在System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass7_0.
在System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.Begin(AsyncCallback回调,对象状态,Int32超时)
在System.Web.Mvc.Async.AsyncControllerActionInvoker.BeginInvokeActionMethodWithFilters(ControllerContextcontrollerContext,IList`1过滤器,ActionDescriptoractionDescriptor`2,IDiction参数,AsyncCallback回调,对象状态)
在System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_1.