我在将Web应用程序安装到IIS 7.5时遇到问题。 我正在使用VS2010构build标准的Web应用程序安装程序,但是当我安装应用程序时,我希望它被放置在站点的根目录下(而不是在虚拟文件夹中)。 这是一个设置的一个小图:
每个应用程序都有自己的应用程序池。 静态文件夹使用整个站点默认使用的主应用程序池。
如果我运行安装程序并将虚拟目录字段留空,则一切似乎都正常工作。 问题是,我的其他所有应用程序都被移入默认应用程序池,并最终中断,因为权限是相对的限制。
有谁知道解决这个问题的方法? 我不希望用户必须input.../static/...在网站的URL,所以简单地安装到虚拟目录的“正常”的方式将无法正常工作。
谢谢,
– 丹
经过大量的调查,我认为有一个在Web应用程序安装程序或IIS本身的错误。 因为我暂时停留在Web应用程序安装程序中,所以我是这样解决的:
C:\inetpub\wwwroot (反正这是默认的) static是相同的
(/*)(.*) {URL}不匹配^(/*)app1/(.*) {URL}不匹配^(/*)app2/(.*) /static/{R:2} 在我的情况下,我不需要任何出站规则(即我不需要一个完整的反向代理),因为我的应用程序返回有效的URL。
这个解决scheme的好处在于它对用户来说是完全透明的,任何以/(即...a href="/images/file.jpg"... )开头的链接仍然可以工作,因为当最终用户请求/images/file.jpg URL将在内部重写为/static/images/file.jpg 。
主要的缺点是我必须保持与所有应用程序池最新的匹配模式列表。 但在我的情况下,这不是什么大不了的事情。 我实际上可以自动在web.config文件中注入新的模式string – 但对我来说这不是什么大问题。
另一个缺点是,用户可以在源代码中看到/static/images/...链接,但我并不在意这一点。
所以 – 希望这将有助于未来的人。