我正在使用Windows Azure VM为asp.net mvc 5应用程序设置新服务器。我可以打开应用程序的每个页面,除了一个控制器外,没有任何问题。也就是说,每当我尝试打开属于特定控制器的页面时,都会提示我输入用户名和密码,如下所示。
我在不同的Windows Server 2016 VM中使用相同的应用程序,没有任何问题。
我也看不到应用程序/ IIS日志的任何错误。我在应用程序中没有任何https要求。
什么可能导致这种行为?
namespace App.Controllers
{
public class ReportsController : BaseController
{
private readonly IReportRepository reportRepository;
public ReportsController(): this(new ReportRepository()){
}
public ReportsController(IReportRepository reportRepository){
this.reportRepository = reportRepository;
}
public ViewResult Action()
{
return View(reportRepository.All);
}
}
}
namespace App.Controllers
{
[Authorize]
public class BaseController : Controller
{
}
}
更新:我将ReportsController重命名为AppReportsController,问题消失了。 即当我尝试访问
时收到上述提示但不是
请问有人可以告诉我这是怎么回事吗?这是否意味着框架保留了“报告”?
答案 0 :(得分:1)
如果您在Web应用程序中不使用transport layer security(即HTTPS),浏览器将告诉您与该站点的连接不是私有的,并且系统要求您输入数据-在这种情况下,您的凭据。这样做很危险,因为数据很容易被恶意者嗅探。
当今世界上没有理由没有一个安全的网站,我强烈建议您获得证书(它们是free and super easy!)
答案 1 :(得分:1)
请不要使用“报告”,而应使用“报告”。控制器名称ReportController不是ReportsController。没事的我已经遇到了问题,这就是我所拥有的解决方案。
答案 2 :(得分:0)
我知道这是一篇旧文章,但是我偶然发现了这则文章,因为我遇到了与OP相同的错误。
如果有人遇到与此相同的问题,我已经解决了这一问题。 但是解决方案可能会有所不同,具体取决于我们是否安装了相同的应用程序。
从应用程序控制面板中删除/卸载报告服务 如果您不知道如何删除报告服务How to remove Report Service
请再次检查是否仍然遇到相同的错误。干杯!
答案 3 :(得分:0)