Win7教授64位返回空白页面下的IIS 7.5(根本没有HTML)

时间:2009-09-17 17:11:28

标签: windows iis

我正在尝试在Windows7中设置我的开发环境,并且无法让IIS运行。我已经设置了自IIS6以来我一直在做的所有事情,所以我有了基础知识。我的问题必须是IIS7和IIS7.5之间或操作系统中发生变化的问题。

我的网站都不会返回HTML。不是默认站点,也不是新添加的站点。

如果我

telnet localhost 80

然后在空白屏幕

GET / <enter>

我什么都没得到,不是单个标题或HTML元素。

如果我输入垃圾而不是GET请求,我会得到以下HTML:

HTTP/1.1 400 Bad Request Content-Type:
text/html; charset=us-ascii Server:
Microsoft-HTTPAPI/2.0 Date: Thu, 17
Sep 2009 17:04:01 GMT Connection:
close Content-Length: 326

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML><HEAD><TITLE>Bad
 Request</TITLE> <META
 HTTP-EQUIV="Content-Type"
 Content="text/html;
 charset=us-ascii"></HEAD>
 <BODY><h2>Bad Request - Invalid
 Verb</h2> <hr><p>HTTP Error 400. The
 request verb is invalid.</p>
 </BODY></HTML>

因此证明IIS存在并处理端口80上的请求。

在我的IIS日志路径中,我根本没有文件。因此,无论出于何种原因,都没有写入日志。

如果我在IIS管理器中查看网站上的基本设置,然后单击“测试连接”按钮,我收到与权限相关的错误:

  

服务器配置为使用   使用传递身份验证   内置帐户访问   指定的物理路径。但是,IIS   经理无法验证是否   内置帐户有权访问。确保   应用程序池标识有   读取物理路径的访问权限。如果   此服务器已加入域,并且   应用程序池标识是   NetworkService或LocalSystem,验证   那个\ $有   读取物理路径的访问权限。然后   再次测试这些设置。

我的AppPool作为ApplicationPoolIdentity运行,它似乎不是真正的用户,所以我不能给予ApplicationPoolIdentity文件权限。我做了一个测试给IIS_IUSR和其他人我可以找到完全访问路径。

无论我到目前为止做了什么,我都没有看到IIS说权限是正确的。但是,我也从未见过错误,特别是没有权限错误(300s)。

那么,有什么想法吗?我试图完全删除IIS,c:\ inetpub,然后重新安装所有内容。我基本上是在这里做默认设置,所以它必须是简单的。

感谢您的时间......

2 个答案:

答案 0 :(得分:86)

我解决了。对于其他有问题的人来说,这就是我所做的。

首先复制问题:我在添加/删除Windows功能菜单中选择“ASP.NET”来安装IIS。这是选择IIS运行.NET应用程序所需的一切,但有趣的是它无法提供静态页面(.html,css,js等)我的测试页面只是一个hello world .html页面,所以这就是为什么它不是没服务。

要解决此问题:要启用静态内容的提供,您必须在相同的“添加/删除Windows功能”列表中专门选择“常见HTTP功能”下的“静态内容”。一旦你这样做我的测试页面工作正常。

总结:我不明白典型的.NET如何在没有静态内容(CSS,图像,Javascript)的情况下运行,所以我不知道为什么MS在选择ASP.NET时默认不包含静态内容。也许我安装IIS的工作流程是错误的。

我确信有一种方法可以跟踪请求流,以查找静态内容请求被阻止,但我不知道该怎么做。

答案 1 :(得分:7)

Matt Cofer的解决方案是正确的:为了查看静态内容,您必须在初始安装期间安装静态内容功能。但是,我发现添加/删除功能对我不起作用:它只显示了一部分功能,与IIS无关。

所以......这是安装静态内容的另一种方法:

  1. 打开服务器管理器
    • Start Menu > type "server manager" in search field > click resulting link
  2. 展开角色节点
  3. 右键单击 Web服务器(IIS)节点以查看上下文菜单
  4. 从上下文菜单中选择添加角色服务
  5. 添加角色服务窗口打开时,导航到Web Server > Common HTTP Features
  6. 启用静态内容
  7. 点击下一步