我继承了一个相当复杂的网站项目,当我在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将自动将~/
解析为站点的基本路径。