为什么网站项目除了通过IIS之外不提供页面服务



我继承了一个相当复杂的网站项目,当我在VS 2012中在"服务器"的默认"使用默认web服务器"设置下运行它时,它会正确地为登录页面提供服务,在基本URL http://localhost:45632下,我可以很好地登录。然后,当我单击URL为http://localhost:45632/Apps/Visitors/General.aspx的菜单项时,我会得到一个好的、简单的404。

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

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

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

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

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

最新更新