各位高手,小弟开发一个网站,由于各种原因,使用记事本像ASP一样写出代码和页面混合的VB代码的.ASPX文件,现在出现一个问题,由于每次主机重启后,.aspx文件首次被读时会实重新编译,CPU占用率非常大,网上查了一天,只找把如何使用web.config的system.web建立aspx到dll的映射,还是不知道如何实现把.aspx文件手工编译成DLL的简单方法,只好救助各位高手了。

解决方案 »

  1.   

    这种好像不可以,扩展名是类名的,可以用csc 命令
      

  2.   

    用。NET框架的VBC。EXE来编译,这个文件在WINNT\Microsoft.NET\Framework\..你的。NET版本号然后在进去,就在里面然后就是在CMD下进入。。vbc /t:library xxx.vb这个是你的文件,在CMD下命令是这样编译文件的,编译后,你的文件将会在该目录下产生。首先你要把文件COPY到VBC目录下,或者把VBC拿出来也可以注意:如果被编译的文件里面引用到WEB的控件等或HTML控件,命令行应该是vbc /t:library /r:system.web.dll xxx.vb
      

  3.   

    楼上的说了,在ms-dos下进入net目录下用VBC
      

  4.   

    楼主的意思是,你的是code-beside代码而非code-behind?那是不能直接编译的,但是可能有办法。因为asp.net页面,是通过PageHandlerFactory处理的,该HttpHandlerFactory其实就是调用一个叫做PageParser的类来对.aspx这样的TemplateControl进行分析,所以如果有编译操作,那就肯定是PageParser负责的了,你不妨用Reflector研究一下PageParser。另外就是,即使你没有这个编译过程,iisreset后(当然也包括服务器重起后)第一次运行总会很慢的,就算我直接用HttpHandler(Factory),每次重新编译后被调用也是很慢的。
      

  5.   

    重新用Vs.net作才行的。以后不要这样做了,很难再扩展的。
      

  6.   

    用命令行编译的时候带个参数阿,可以看一下帮助:csc /?
      

  7.   

    只能这样了,vbc /t:library /r:system.web.dll YOURVBNAME,使用vs多方便啊,干吗要这样
      

  8.   

    vbc /t:library /out:E:\my\bin\ads_edit.dll /r:system.dll,system.data.dll,system.xml.dll,system.web.dll E:\my\后台文件\ads_edit.aspx.vb
      

  9.   

    如果你是练技术的话,用记事本未尝不可,但是如果是开发的话,建议你用vs.net啦。我以前用记事本做过,不过很不方便。
      

  10.   

    混合文件的 ASPX 是不能编译的
      

  11.   

    因为页头根本没有 CODEBEHIND 的属性可以指定了
      

  12.   

    这样做好象也会出错啊.我用的CSC的类似方法不行
      

  13.   

    还是不是太明白,我怎么得到xxx.vb呢,这个中间文件我那里去搞到?
      

  14.   

    另外,网上有文章说在“C:\WINNT\Microsoft.NET\Framework\v1.0.3705\Temporary ASP.NET Files\root\随机名\随机名\”下有中间文件,我找了一个有很多.xml,如about.aspx.b9194bc6.xml,但没有找到about.aspx.vb这种...HOHO
    -----------------------------------
    不是啊,我买的书里只教我用记事本写,我不会用VS,晕啊...HOHO
      

  15.   

    晕,还不知赶快学一下VS,然后把你原来的程序放到VS上去,这样你解决了现有的问题,又学会了VS
      

  16.   

    呵呵,混合写的到现在为止我还没看见过别人编译过。
    这样好像就在用以前的asp。
      

  17.   

    东西不小才在说呢,真可怜,看来我还是慢慢重新写一次吧,HOHO