我正在尝试使用现有的旧的ASP.Net Web应用程序,它将作为我们项目的主要UI。 Web应用程序使用了许多用户控件,其中有很多:
<element attribute='<%=Page.ResolveUrl("~/path/to/resource")' ...
但是,我有一个问题。如果将应用程序部署到IIS,则对Page.ResolveUrl()的这些调用可以正常工作。但是,如果我尝试在Visual Studio开发服务器中运行此应用程序,它不会解析任何URL(即,没有应用样式,没有渲染图像等)
// If deployed in IIS, the style tag renders like this (and works):
<link href="/adminconsole/styles/styles.css" ...
// On the VS Dev Server:
<link href="/styles/styles.css" ...
我想要的是,无论应用程序是部署到IIS还是在Visual Studio开发服务器上运行,这些调用都“正常工作”。
一些相关信息:
网络应用程序不使用母版页。它包含标题作为用户控件:(
答案 0 :(得分:1)
VS Dev Web服务器通常只有一个站点,并在具有特定端口号的localhost上访问。检查Web选项卡中的项目属性,看看是否可以将该URL更改为具有IIS中的站点名称。如果不可能,如果您不愿意更改代码,请让您的开发人员使用本地IIS或IIS express而不是那个小VS玩具。
根据我的经验,在IIS上进行开发和测试要好得多,因为你的工作环境与生产环境更相似,如果有的话,你会更早发现问题,所以有更多的时间在上一个晚上才能做出反应。
答案 1 :(得分:0)
我最近不得不做这样的事情,但我没有使用<%=ResolveURL("~/path/to/file")%>
而是使用<%=ResolveURL("relative/path/to/file")%>
尝试查看是否有效。它对我有用。
我还认为在本地IIS上进行测试/调试肯定更好。请记住,Cassini(随VS一起提供的玩具网络服务器)在开发人员的凭据下运行,因此与直接在IIS上运行您的网站相比,本地文件系统的权限非常不同。