Windows 2012 / IIS 8 + ASP.NET MVC应用程序403.14(禁止) – Web服务器configuration为不列出内容

我有一个非常简单的MVC 4应用程序,我试图部署到Windows 2012服务器。

不一致的是,当浏览到Web应用程序的根目录( http://localhost/app )时,它会返回403.14-Forbidden

详细的错误信息:

 Module: DirectoryListingModule Notification: ExecuteRequestHandler Handler: StaticFile Error Code: 0x00000000 Requested URL: http://localhost:80/test1/ Physical Path: c:\apps\test1\ Logon Method: Negotiate 

Web应用程序是:

  • 是一个非常香草的VS2012 MVC4内联网模板 – 只需要调整一个标签来certificate事情正在工作。
  • 在集成的v4.0应用程序池中运行
  • 设置为使用Windows身份validation
  • 应用程序池具有分配的自定义AD标识(因此可以访问SQL服务器)
  • 应用程序池标识在其运行所在的c:\ apps \ test1文件夹中具有读取权限
  • 这是一个MVC4应用程序,目前针对.NET 4.0 – 在MVC4应用程序中没有默认文档(如default.aspx),因为不应该有一个。
  • 我不想启用目录列表(因为这不是真正的错误)。
  • 已安装:angular色/ Web服务器(IIS)/应用程序开发/(.NET 4.5可扩展性,应用程序初始化,ASP.NET 4.5,ISAP扩展,ISAPI筛选器,WebSocket协议)
  • 在Windows 8的IISExpress上,在本地机器上运行
  • 已在web.config中configuration: <modules runAllManagedModulesForAllRequests="true" />
  • 在发布期间设置为预编译

当我将预编译选项更改为false ,Web应用程序不会失败 (至less在我的testing中,它似乎一直工作)。

我说这是不一致的原因是,我已经看到它的工作,然后我已经发布,错误返回。 我找不到这个问题的一个模式(现在,我还没有能够再次得到它的工作)。

403从本地或远程Web浏览器返回。

我很难find一个不适用于旧版本Windows的解决scheme(比如build议重新安装ASP.NET,这在Windows 2012上不起作用)。

我真的不知道还有什么可以尝试的。

在那里刚刚发现了“自定义AD标识”。

  1. 确保新用户实际上有权读取文件系统path,即使没有任何内容。
  2. 确保新用户在IIS应用程序组中,以便它可以与configuration数据库进行通信
  3. 检查是否configuration了内核模式validation,然后取决于:
    1. (如果是的话)检查setspn没有额外的logging
    2. (如果没有)考虑在身份validation协商列表中将NTLM提升到Kerberos之上,以查看是否解决了问题。

2012年是新的,我不知道它的错误怪癖,但这些都是很好的地方开始时,得到403禁止。

我有类似的问题,我的答案是这样的:

http://technet.microsoft.com/en-us/library/cc731598

我有添加访问该服务的机器的IP。 我不知道这是否已启用。

我也有同样的问题。 我已经search了很多时间,并在这个链接做了所有的指示。 我已经设置了像你的应用程序; 但它根本不起作用。 最后我发现:当我在发布期间select预编译的时候,我必须设置AssemblyCulture为空string(在Properties / AssemblyInfo.cs文件中)例如:

[汇编:AssemblyCulture(“”)]

如果我设置如下,它不起作用

[assembly:AssemblyCulture(“fr-FR”)]