【发布时间】:2011-03-08 22:36:12
【问题描述】:
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 中完成(在这种情况下是),根网站也被认为是一个应用程序。因此,它应该产生适当的网址,但不是。
任何有助于找到更多研究以确定哪些设置/配置设置不正确,或者为什么 ResolveUrl() 不应该以编程方式使用。
【问题讨论】: