2010-02-08 65 views
1

我已经在我的生活中创建了几个IIS网站,但前几天我的一位朋友要求我托管他的网站,所以我在inetpub/wwwroot中创建了一个文件夹存储它。无法在IIS上设置我的ASP.NET 3.5网站

然后,我在我的默认网站中创建了一个虚拟目录(该文件夹因为它位于wwwroot上而出现)并创建了该应用程序,并且允许脚本&可执行文件的权限。此外,我已经设置了网站的适当文档类型(default.aspx,asp等),并且该文件夹具有我通常授予的所有权限:iusr,iwmp,asp.net,network等。

当我重置IIS服务,再看看网站(我已经添加了头太)我得到以下错误:

You have attempted to execute a CGI, ISAPI, or other executable program from a directory that does not allow programs to be executed.

我一直在寻找互联网上一段时间,我发现的唯一的事情是允许可执行文件到我的网站,我已经完成了。

但是,当我删除了asp.net页面并且我只添加了一个html文件时,它将显示在浏览器上。

有没有人有任何线索?

+0

您正在运行的是哪个版本的IIS? – Andrew 2010-02-08 14:52:43

+0

我正在运行6.0 – 2010-02-08 15:02:47

回答

1

走进Web服务器扩展文件夹下的IIS管理器,并确保你已经允许asp.net 2.0应用程序运行

+0

允许。虽然这个网站在3.5框架下运行。我是否也必须将其添加到Web服务器扩展?在这种情况下,我必须添加哪个dll文件? – 2010-02-08 15:03:49

1

你IUSR帐户需要读取你创建的目录/写权限。

+0

它已经有了。 – 2010-02-08 15:27:25

+0

@Matt - 如果为匿名用户帐户设置了错误的NTFS权限,您将在浏览器中获得一个弹出窗口询问凭据。 – Kev 2010-02-08 15:40:09

0

您收到的错误肯定意味着您的脚本执行权限不正确。在IIS管理器中,回到相关文件夹,然后仔细检查相关文件夹/虚拟目录的“目录”选项卡上的设置。

你也应该用一个经典的ASP脚本(文件中只有<% Response.Write "Hello" %>)来试试这个,只是为了确定,但我相信结果是一样的。

如果仍有问题,请打开IIS元数据库(位于C:\WINDOWS\system32\inetsrv\metabase.xml)并找到相关文件夹。要做到这一点,搜索(假设你把网站的默认Web站点下)以下字符串:

Location ="/LM/W3SVC/1/ROOT"

这应该找到IIsWebVirtualDir默认Web站点的根目录。它看起来像这样:

<IIsWebVirtualDir Location ="/LM/W3SVC/1/ROOT"` 
    AccessFlags="AccessRead | AccessScript" 
    AppFriendlyName="Default Application" 
    ...other attributes... 
    > 
</IIsWebVirtualDir> 

向下滚动一下,直到找到与您将朋友网站放入的文件夹相匹配的位置路径。

Location ="/LM/W3SVC/1/ROOT/JoesSite"

当你发现这一点,看看在AccessFlags属性,它应该看起来像:

AccessFlags="AccessRead | AccessScript"

告诉我们你的元数据库节点上看到的。

-1

那么,因为它是一个网站,而不是一个网络应用程序,它似乎没有作为一个虚拟目录,但它作为一个IIS网站。

谢谢。

布赖恩

-1

打开iis。然后在左窗格中选择应用程序池。在池中选择指定的站点。右键单击并打开高级设置,然后根据需要更改.NET版本。