我的错误日志文件中弹出一个奇怪的错误。我正在使用来自 AppHarbor 的自定义 RequireHttpsAttribute
:https://gist.github.com/915869 .
我的家庭 Controller 上有这个属性,它工作正常,但我会说每天有 5-10 次一些请求因以下错误而失败:
The requested resource can only be accessed via SSL.
Stack Trace:
at System.Web.Mvc.RequireHttpsAttribute.HandleNonHttpsRequest(AuthorizationContext filterContext)
at Osmosis.RequireHttpsAttribute.OnAuthorization(AuthorizationContext filterContext) in d:\temp\bfzenor31c\input\prj\Infrastructure\Extensibility\RequireHttpsAttribute.cs:line 35
at System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<BeginInvokeAction>b__1e(AsyncCallback asyncCallback, Object asyncState
RequireHttpsAttribute 的第 35 行如下:
HandleNonHttpsRequest(filterContext);
因此“X-Forwarded-Proto”请求 header 中未提供“https”。但是由于我不明白的原因,重定向到 https 失败了。
这是请求的 url:http://www.mydomain.com:14685/ ,具有 [RequireHttps] 属性的 Controller 主页操作索引。
如有任何指点,我们将不胜感激。
最佳答案
每当部署新版本时,AppHarbor 都会向您的站点发出这样的请求。这是 pre-warming process 的一部分,我认为这可能是您问题的根源。
我们会想办法避免这对您显示为错误。
关于asp.net-mvc - AppHarbor 上的错误请求的资源只能通过 SSL 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14278811/