我正在使用 Web部署项目来预编译我的 ASP.NET 3.5 Web项目。它为aspx和ascx文件中的代码创建了一个额外的DLL。并且,对于每个aspx文件,都有一个占位符aspx文件(空),需要将其复制到服务器。
我想简化部署过程。有没有办法(配置IIS站点并添加某种http处理程序等)摆脱这些aspx占位符?
另外,我想知道是否有办法摆脱bin文件夹中的 .compiled files 。这将使部署过程更加顺畅。
谢谢!的
答案 0 :(得分:6)
我自己发现了它。它比我想象的要容易得多(IIS 6.0):
在Internet Information Manager中,转到该站点的属性页面,然后选择“主目录”选项卡并单击“配置...”按钮。
单击“编辑...”以获取.aspx ISAPI扩展名,并取消选中“验证该文件是否存在”。此时,不再需要aspx文件了。
更新
一件重要的事情:我必须在应用程序的根目录中创建一个空的“default.aspx”文件,以便为“http://www.example.com/”等请求提供默认文档(不调用aspx)。 / p>
更新2
另一个非常重要的事情:如果您使用的是ASP.NET Ajax PageMethods,那么您必须保留该页面的aspx占位符。如果您要省略该文件,则会在浏览器上抛出javascript 'PageMethods未定义'错误。
答案 1 :(得分:0)
如果可能,那么至少需要在IIS中映射所有可能的asp.net引擎请求。不是很难。然后,HttpHandler应该可以拦截所有传入的请求。然后,该处理程序应该能够动态加载已编译的页面类并进行渲染。你基本上有一个提供页面内容的引擎DLL。
但正如你可能已经注意到所有应该那样,这不是一件简单的事情,而且我怀疑它真的值得这么麻烦。这些占位符文件出现了什么问题?