IIS 6 ASP.NET 3.5 (C#.NET)
我们遇到了一个问题,同一组文件在作为根IIS网站和作为IIS网站下的应用程序时表现不同。使用ResolveUrl()生成的URL是不同的,即:
<a href="<%=ResolveUrl("~/contact.aspx") %>">Contact Us</a>
- 作为根网站,它会生成:http://contact.aspx
- 作为网站下的应用程序,它会生成:http://domainname.org/DSC/contact.aspx
这两个网站都使用相同的文件。第一个示例是它自己的网站,第二个示例是一个虚拟目录变成的应用程序(名为DSC)。两者还使用相同的应用程序池、配置、文档和安全设置(我确保在 IIS 中两者之间的所有设置都是相同的)。
所有研究都表明 ResolveUrl() 确实是指所在网页所在的 IIS 应用程序。我也在几个地方读到过,即使在 IIS 中没有完成信息(在这种情况下已经完成),根网站也被视为一个应用程序。因此,它应该产生适当的 Web 地址,但事实并非如此。
寻找更多的研究来确定哪些设置或配置不正确,或者为什么应该编程使用 ResolveUrl() 未能达到预期的效果。