【发布时间】:2013-02-07 01:07:30
【问题描述】:
这是一个奇怪的问题。当我达到这一点时,它们总是如此。
我有一个 MVC 应用程序。这是一个单页应用程序,因此所有路由都是 ajax 调用,但我认为这无关紧要。
奇怪的是,一个特定的页面突然开始给我一个 401 并提示我输入信用。实际上,这两个页面都在这个 MVC 区域中。它只在本地进行,所以我无法调试。它只是在最后一次推动之后才开始的。其他页面都没有这样做。
所以我通过 fiddler 比较了成功页面的标题和网站上的 401 页面。 完全一样的怪胎除了网址。 动作
401 的操作
public ActionResult Display_Template(ViewModel input)
{
return this.View("Display", new TasksByFieldViewModel());
}
为 200 人
public ActionResult AddUpdate_Template(ViewModel input)
{
return View("VendorAddUpdate", new VendorViewModel());
}
唯一的变化是这个,这没有任何意义。
从 401 页面,我重定向到一个带有 reportviewer 的 aspx 页面。但是您必须单击一个按钮,然后您的 window.locationed 就结束了。这不可能有任何关系。
第二个是我在qa服务器上从sqlserver trial升级到sqlserver standard。
这就是我的全部。完全糊涂了。
任何想法都会很棒。
谢谢,
雷夫
编辑\修复\黑客:
好吧,这要么令人困惑,要么令人愤怒。现在说还为时过早。
我的 MVC 区域,正在破坏的区域,它被命名为“报告”,因为它充满了报告。在做了一些 hail mary 测试后,我将区域名称更改为 Reportsx,现在它就像一个梦一样工作。因为如果区域名称是 Reports,我当然从未告诉堆栈的任何部分要求凭据,我只能假设有一些 IIS 设置或 MVC 设置表明如果 url 是 xxx/Reports 则要求凭据。
我愿意接受其他观点。
【问题讨论】:
-
我假设在 QA 中使用了不同的 web.config。可能值得检查没有通过这种方式无法访问的位置。
-
您可以尝试为您的显示模板创建一个 Layout=null 的空白视图,并使用它来确定您的操作或您的视图是否是问题并从那里开始工作。
-
您有没有机会在您的 QA 服务器上安装/托管 SSRS?
-
哇 - 我刚来到这个页面,很惊讶你的控制器名称是 Reports - SO IS MINE!!!我也有同样的问题,我想不通。
-
我刚刚遇到了同样的问题,感谢@Peter 的评论,我还能够将 SSRS 确定为原因。您可以使用 Reporting Services 配置管理器来限制 SSRS URL 过滤器devio.wordpress.com/2016/01/15/…
标签: c# asp.net-mvc asp.net-mvc-areas http-status-code-401