我通过右键单击 Default Web Site 并选择 Add Application 来创建一个Web应用程序 . 然后我给出别名,选择 DefaultAppPool 并将其指向物理路径 .
当我尝试浏览http://localhost/mywebapp时,我得到'Access is denied',其中包含以下详细信息:
错误消息401.2 . :未授权:由于服务器配置登录失败 . 验证您是否有权根据您提供的凭据和Web服务器上启用的身份验证方法查看此目录或页面 . 请与Web服务器的管理员联系以获取其他帮助 .
IIS网站上启用了
-
Anonymous Authentication .
-
Web应用程序是ASP.NET MVC5应用程序 .
-
Web应用程序以其默认标识运行: ApplicationPoolIdentity
以下是DefaultAppPool的设置
3 回答
确保您的应用程序不在网络共享或Windows用户(魔术)目录中 . (如果您按照我的说明操作,它可以在Visual Studio默认魔术用户目录中)
如果您使用的是Win7,请创建一个新的MVC 3应用程序,然后运行^ F5 . 然后在解决方案资源管理器中,右键单击项目并选择属性 . 在左侧窗格中,选择“Web”选项卡 . 默认值为Cassini(使用Visual Studio开发服务器) . 选择下一个收音机,使用本地IIS Web服务器 . 现在^ F5,它将从IIS启动您的应用程序 . 您还可以在IIS管理器中找到您的应用程序,在右侧窗格中选择浏览80.现在它正在运行,比较两个应用程序中的差异 .
你的方法也应该有效 . 您可以尝试创建新的MVC应用程序并使用您的方法在IIS上进行测试 . 最常见的错误是创建vDir,而不是应用程序
错误消息非常好 . 要在应用程序池标识上设置ACLS,请按照 Securing Resources 下的说明进行操作http://learn.iis.net/page.aspx/624/application-pool-identities/
另见Understanding Built-In User and Group Accounts in IIS 7
如果新的MVC应用程序失败,请重复,但创建一个Web窗体应用程序 .
确保
IUSR
具有webapp
所在目录的权限 .此外,如果您的应用程序正在访问权限资源(文件IO,MSMQ等),则必须更改应用程序池的
Identity
或确保ISUR具有权限 .确保
NETWORK SERVICE
帐户(或IIS正在使用的任何系统帐户)具有应用程序文件夹的权限 .要检查正在使用的系统帐户,请转到应用程序池设置,系统帐户将列在
Identity
选项卡下:EDIT
确保应用程序使用正确的应用程序池 . 此外,如果您尚未指定默认文档,那可能是您的问题 . 您可以通过在网址中添加网页名称来对此进行测试,例如:
http://localhost/mywebapp/default.aspx