我继承了一个非常复杂的网站项目,当我在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下可以正常工作。
答案 0 :(得分:1)
Visual Studio开发Web服务器通常在与您的项目名称匹配的虚拟目录下运行该站点。这意味着您网页的网址应为http://localhost:45632/YourProjectName/Apps/Visitors/General.aspx
。如果您在IIS中的默认站点下创建应用程序,您可能会看到同样的问题。
您需要更改链接的生成方式。不使用/Apps/...
,而是使用~/Apps/...
- ASP.NET会自动将~/
解析为网站的基本路径。