我正在尝试在Windows7中设置我的开发环境,并且无法让IIS运行.我已经设置了自IIS6以来我一直在做的所有事情,所以我有了基础知识.我的问题必须是IIS7和IIS7.5之间或操作系统中发生变化的问题.
我的网站都不会返回HTML.不是默认站点,也不是新添加的站点.
如果我
telnet localhost 80
Run Code Online (Sandbox Code Playgroud)
然后在空白屏幕上
GET / <enter>
Run Code Online (Sandbox Code Playgroud)
我什么都没得到,没有一个标题或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>
Run Code Online (Sandbox Code Playgroud)
因此,证明IIS存在并处理端口80上的请求.
在我的IIS日志路径中,我根本没有文件.因此无论出于何种原因,都没有写入日志.
如果我在IIS管理器中查看网站上的基本设置,然后单击测试连接按钮我收到与权限相关的错误:
服务器配置为使用内置帐户的传递身份验证来访问指定的物理路径.但是,IIS管理器无法验证内置帐户是否具有访问权限.确保应用程序池标识具有对物理路径的读访问权限.如果此服务器已加入域,并且应用程序池标识为NetworkService或LocalSystem,请验证\ $是否具有对物理路径的读取权限.然后再次测试这些设置.
我的AppPool作为ApplicationPoolIdentity运行,它似乎不是真正的用户,所以我不能给予ApplicationPoolIdentity文件权限.我做了一个测试给IIS_IUSR和其他人我可以找到完全访问路径.
无论我到目前为止做了什么,我都没有看到IIS说权限是正确的.但是,我也从未见过错误,特别是没有权限错误(300s).
那么,有什么想法吗?我试图完全删除IIS,c:\ inetpub,然后重新安装所有内容.我基本上在这里做默认设置,所以它必须是简单的.
谢谢你的时间...
Mat*_*fer 86
我解决了 对于其他有问题的人来说,这就是我所做的.
首先复制问题:我在添加/删除Windows功能菜单中选择"ASP.NET"来安装IIS.这是选择IIS运行.NET应用程序所需的一切,但有趣的是它无法提供静态页面(.html,css,js等)我的测试页面只是一个hello world .html页面,所以这就是为什么它不是没服务.
要解决这个问题:要启用的静态内容服务,你必须专门选择在同添加"静态内容"下常见HTTP功能/删除Windows功能列表.一旦你这样做我的测试页面工作正常.
总结:我不明白典型的.NET如何在没有静态内容(CSS,图像,Javascript)的情况下运行,因此我不知道为什么MS在选择ASP.NET时默认不包含静态内容.也许我安装IIS的工作流程是错误的.
我确定有一种方法可以跟踪请求的流程,发现静态内容请求被阻止,但我不知道该怎么做.
小智 7
Matt Cofer的解决方案是正确的:为了查看静态内容,您必须在初始安装期间安装静态内容功能.但是,我发现添加/删除功能对我不起作用:它只显示了一部分功能,与IIS无关.
所以......这是安装静态内容的另一种方法:
Start Menu > type "server manager" in search field > click resulting linkWeb Server > Common HTTP Features| 归档时间: |
|
| 查看次数: |
30061 次 |
| 最近记录: |