Visual Studio/Asp.net/IIS Pathing帮助

问题描述:

我在创建一个网站时遇到了一些严重的路径问题。我在Windows Vista Home Premium上使用Visual Studio 2008 IDE和IIS7。这是一个网站项目,而不是一个asp.net web应用程序(根据Visual Studio)。Visual Studio/Asp.net/IIS Pathing帮助

那么这是问题所在。尽管VS 2008有自己的内置Web服务器,但我将IIS 7用作测试服务器。在我创建的以前的网站上,我使用了VS 2008测试服务器,并且一切都很好,但是这个项目我严格使用IIS 7.我遇到了路径问题。例如

http://localhost/mywebsite/default.aspx 

每当我尝试访问该站点的根目录,如

<a href="/default.aspx" /> 

它去“http://localhost/”,因此,有错误。这真的螺钉的东西,当我尝试映射在服务器端代码项目

Server.MapPath("/"); //Will not work in this configuration 

我依稀记得在Visual Studio中有关设置开始的根路径的东西,但我不完全知道在哪里设置这个和/或如果他们是这个选项。我不确定在IIS 7或Visual Studio中是否需要更改配置。

此外,为了在IIS(使用Visual Studio)上建立网站,我创建了一个新网站并设置了我的localhost(HTTP)和虚拟目录上的位置。我是否正确设置了它?

<a href="~/default.aspx" runat="server" /> 

得益于RUNAT = “服务器” 标签,框架现在将正确地解决它。

尝试

Server.MapPath("~/"); 

如果这是一个网站或Web应用程序项目,您可以覆盖项目设置的Web选项卡上的应用程序根路径。但是,这仅告诉Visual Studio如何在设计/编译时解决〜。你真的想要在任何地方使用波浪号来引用你的应用的根目录。这样它就可以无缝地工作,不管它是IIS中的网站还是作为虚拟目录运行。

在ASP .NET中创建链接或引用URI时,请记住以下几点。

  • 波浪线字符“〜/”代表 应用程序的根目录。

  • 正斜杠“/”代表URI的绝对根目录 。

当处理虚拟目录中的应用程序时,应用程序根将作为该虚拟目录的路径。如果您希望链接以应用程序根目录开头,则始终以〜/为前缀。如果您需要链接到URI的根目录,则可以简单地使用正斜杠/。