首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >新建Asp.Net MVC5项目会生成登录页面的无限循环

新建Asp.Net MVC5项目会生成登录页面的无限循环
EN

Stack Overflow用户
提问于 2013-10-26 08:25:07
回答 21查看 48K关注 0票数 78

我正在用Visual Studio2013创建一个全新的项目,我选择了Asp.Net MVC,项目的框架4.5.1创建完成了,然后,我只做了F5来启动默认的网页。不幸的是,它会重定向到登录页面,该页面也会重定向到登录页面。以下是我在浏览器中拥有的url的简短版本:

代码语言:javascript
复制
http://localhost:5285/Account/Login?ReturnUrl=%2FAccount%2FLogin%3FReturnUrl%3D%252FAccount%252FLogin%253FReturnUrl%253D%25252FAccount%25252FLogin%25253FReturnUrl%25253D%2525252FAccount%2525252FLogin%2525253FReturnUrl%2525253D%252525252FAccount%252525252FLogin%252525253FReturnUrl%252525253D%25252525252FAccount%25252525252FLogin%25252525253FReturnUrl%25252525253D%2525252525252FAccount%2525252525252FLogin%2525252525253FReturnUrl%2525252525253D%252525252525

我在事件查看器中没有任何错误。但在屏幕上我看到:

"HTTP错误404.15 -未找到请求过滤模块配置为拒绝查询字符串太长的请求。“

该网站使用IIS Express中的默认设置运行。我如何解决这个问题?我猜我的Visual Studio 2013出了什么问题?

编辑

如果我创建了一个全新的网站并将其托管在IIS中,它就会起作用。但是如果我创建了一个新的网站(没有修改任何东西),只是点击play (默认情况下启动IIS Express ),它不会。

编辑2

我已经删除了Documents\IISExpress\config\applicationhost.config.中所有网站的我重新编译了所有内容,并创建了以下条目:

代码语言:javascript
复制
    <siteDefaults>
        <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
        <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
    </siteDefaults>
    <applicationDefaults applicationPool="Clr4IntegratedAppPool" />
    <virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>

我仍然收到IIS Express的错误,而不是IIS的错误。

EN

回答 21

Stack Overflow用户

回答已采纳

发布于 2013-10-29 09:36:21

请注意,这可能是有害的建议,直接修改应用程序主机配置文件通常不是一个好主意,通常有工具可以安全地(例如,从Visual Studio中)为您完成此操作。在继续之前,请确保创建此文件的备份副本,以防IIS Express损坏。

为了解决这个问题,我采用了位于以下位置的默认IIS配置文件:

代码语言:javascript
复制
C:\Windows\System32\inetsrv\config\applicationHost.config

添加到我的文档

代码语言:javascript
复制
%userprofile%\documents\iisexpress\config\applicationhost.config

而且它起作用了。

这是因为我设置了一些Windows身份验证,而不是匿名帐户。

票数 1
EN

Stack Overflow用户

发布于 2013-12-08 22:03:52

在Visual Studio中突出显示该项目

打开右侧的“属性”面板(或按F4)

将“Windows身份验证”设置为“已禁用”

将“匿名身份验证”设置为“已启用”

票数 67
EN

Stack Overflow用户

发布于 2013-10-26 09:08:45

登录操作缺少[AllowAnonymous]属性。

代码语言:javascript
复制
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
    // code....
}

IIS Express专用的 stored :如果您多次创建相同的默认WebApplication1项目,使用不同的身份验证设置,则IIS Express会在其配置文件中存储其他身份验证设置。类似于:

代码语言:javascript
复制
    <location path="WebApplication1">
        <system.webServer>
            <security>
                <authentication>
                    <windowsAuthentication enabled="true" />
                    <anonymousAuthentication enabled="false" />
                </authentication>
            </security>
        </system.webServer>
    </location>
</configuration>

配置位于用户的Documents文件夹Documents\IISExpress\config\中,您应该查找:

代码语言:javascript
复制
applicationhost.config

然后删除上面提到的xml节点<location path="WebApplication1">

VS 2015+更新

如果您使用的是Visual Studio 2015或更高版本,请检查配置文件的路径:$(solutionDir)\.vs\config\applicationhost.config

每个解决方案都有自己的配置文件。

票数 39
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19601412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档