为什么网站项目不通过IIS提供页面服务?

时间:2013-06-26 13:50:13

标签: asp.net visual-studio iis visual-studio-2012 iis-7.5

我继承了一个非常复杂的网站项目,当我在VS 2012中以“服务器”的默认“使用默认Web服务器”设置运行它时,它在基本URL {{1下正确地提供登录页面我可以很好地登录。然后,当我点击一个包含URL http://localhost:45632的菜单项时,我得到了一个好的,简单的404。

如果我在IIS 7.5中为它创建一个网站(不是默认网站下的应用程序);将物理目录设置为项目的源文件夹;给它一个主机名http://localhost:45632/Apps/Visitors/General.aspx,然后编辑我的hosts文件,将该主机名指向127.0.0.1;将网站项目设置为使用自定义服务器,基本网址为,最后,从其上下文菜单浏览网站,它在基本网址xtjethro.local而不是http://xtjethro.local/下提供网页,一切正常细

然后,如果我将网站项目设置为使用基本URL为http://localhost:45632的自定义服务器,并重新启动VS2012,以管理员身份运行它,那么一切也都可以。

我想知道为什么http://xtjethro.local在VS2012下不起作用,但http://localhost:45632/Apps/Visitors/General.aspx在IIS下可以正常工作。

1 个答案:

答案 0 :(得分:1)

Visual Studio开发Web服务器通常在与您的项目名称匹配的虚拟目录下运行该站点。这意味着您网页的网址应为http://localhost:45632/YourProjectName/Apps/Visitors/General.aspx。如果您在IIS中的默认站点下创建应用程序,您可能会看到同样的问题。

您需要更改链接的生成方式。不使用/Apps/...,而是使用~/Apps/... - ASP.NET会自动将~/解析为网站的基本路径。