Page.ResolveUrl() 在 VS2010 开发服务器上不起作用

发布于 2024-12-11 11:58:48 字数 665 浏览 0 评论 0原文

我正在尝试使用现有的旧 ASP.Net Web 应用程序作为我们项目的主 UI。 Web 应用程序使用了许多用户控件,其中有很多:

<element attribute='<%=Page.ResolveUrl("~/path/to/resource")' ...

但是,我有一个问题。如果应用程序部署到 IIS,则对 Page.ResolveUrl() 的这些调用可以正常工作。但是,如果我尝试在 Visual Studio Development Server 中运行此应用程序,它不会解析任何 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 开发服务器上运行。

一些相关信息

该网络应用程序不使用母版页。它包括作为用户控件的标题:(

I'm trying to use an existing, old, ASP.Net web application that will serve as the main UI for our project. The web application employs MANY user controls, with a lot of:

<element attribute='<%=Page.ResolveUrl("~/path/to/resource")' ...

I have a problem, however. If the application is deployed to IIS, these calls to Page.ResolveUrl() work fine. But if I try to run this application in Visual Studio Development Server, it does not resolve any URLs (i.e., no styles applied, no images rendered, etc.)

// 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" ...

What I want, is for these calls to "just work" no matter if the application is deployed to IIS, or is running on the Visual Studio Development Server.

Some pertinent info:

The web app does not use a master page. It includes the header as a user control :(

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

飘落散花 2024-12-18 11:58:48

VS Dev Web 服务器通常只有一个站点,并使用特定端口号在本地主机上进行访问。检查 Web 选项卡中的项目属性,看看是否可以将该 Url 更改为具有像 IIS 中那样的站点名称。如果不可能并且您不愿意更改代码,请让您的开发人员使用本地 IIS 或 IIS Express 而不是那个小 VS 玩具。

根据我的经验,在 IIS 上进行开发和测试要好得多,因为您在更类似于生产环境的环境中工作,如果有的话,您可以更早地发现问题,因此有更多时间做出反应,而不是在昨晚上线之前。

The VS Dev web server is usually having only one site and accessing on localhost with a certain port number. Check project properties in web tab and see if you can change that Url to have a site name like you have in IIS. If not possible and if you are not willing to change the code make your developers to use local IIS or IIS express instead of that little VS toy.

In my experience is anyway much better to develop and test on IIS because you work in a more similar to production environment and if any, you discover issues earlier so have more time to react not last night before go live.

你是我的挚爱i 2024-12-18 11:58:48

我最近不得不做这样的事情,但我没有使用 <%=ResolveURL("~/path/to/file")%> 我使用了 <%=ResolveURL( "relative/path/to/file")%> 尝试一下看看是否有效。这对我有用。

我还认为在本地 IIS 上测试/调试肯定更好。请记住,Cassini(VS 附带的玩具 Web 服务器)在开发人员的凭据下运行,因此与直接在 IIS 上运行网站相比,本地文件系统的权限有很大不同。

I had to do something like this very recently but instead of using <%=ResolveURL("~/path/to/file")%> I used <%=ResolveURL("relative/path/to/file")%> try that to see if that works. It worked for me.

I also think that testing/debugging on local IIS is definitely better. Remember, Cassini (the toy web server that ships with VS) runs under the developer's credentials so permissions to the local file system are very different compared to running your website on IIS directly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文