我们现在的服务器配置一般,1G内存。现在有一个网站,是.net2.0的,我不论用源程序的版本或者发布的版本,当我在远程访问该网站的时候,服务器上的csc.exe进程就会运行起来,而且瞬时占cpu也较多。然后马上消失,如果用户访问的多,就会出现非常多的csc.exe 用户访问量大增时,就会出现c:/windows/microsoft/....../2.0/csc.exe程序无法运行。
然后网站就崩溃了。我们现在的解决方法,就是上到服务器,把w3wp.exe程序进程结束掉,然后会正常一会,而当用户量再次大增时,又会出现这样的情况。
现在比较郁闷。我想问大家,
1. 服务器上的多个csc.exe进程是多用户访问所致还是多网站(我们的服务器有几个网站)被访问所致?
2. 不是说2.0的网站,编译过一次就不用再编译了吗?而且我用了发布的版本,服务器依然运行csc.exe进程,这个csc.exe进程难道不是做编译使用吗?
3. iis占用的内存到底会有多大?我们网站的日访问量大概有10000多,内存占用峰值大概400M,现在我们的服务器是因为CPU(cpu是普通至强cpu)太差?还是内存(内存还有500M的剩余那)?

解决方案 »

  1.   

    与上次的问题差不多。
    http://community.csdn.net/Expert/topic/5736/5736233.xml?temp=.9250452应用程序域太多,内存拮据,就有可能出现这个问题。楼主好像不结帐的!
      

  2.   

    谢谢楼上的兄弟正因为上次的问题好像并没解决,所以再发帖子了。我们已经把数据库从那台服务器挪走了,但是依然会出现问题,服务器剩余的内存把iis占用的内存都多,你所说的当内存拮据时出的问题好像不太可信啊。
      

  3.   

    在服务器上1G内存是小了点,C盘上的剩余空间大么?ASP.NET 网站运行时,有时需要生成动态网页的程序集,你的ASP.NET 2.0网站是Web Site项目还是Web Application项目?使用大量的XML Serialization么(很多web服务)?看事件日志里,有什么详细的出错信息,贴上来也参考
    http://support.microsoft.com/kb/315904
      

  4.   

    思归老大也来了,真荣幸,这个我们iis崩溃后的日志事件类型: 警告
    事件来源: ASP.NET 2.0.50727.0
    事件种类: Web 事件 
    事件 ID: 1309
    日期: 2007-8-31
    事件: 18:19:55
    用户: N/A
    计算机: GP-SMS-WEB
    描述:
    事件代码: 3005 
    事件消息: 发生了未处理的异常。 
    事件时间: 2007-8-31 18:19:55 
    事件时间(UTC): 2007-8-31 10:19:55 
    事件 ID: f42aa43255dc42c8a4c575a59b2785ba 
    事件序列: 96420 
    事件匹配项: 242 
    事件详细信息代码: 0 应用程序信息: 
       应用程序域: /LM/W3SVC/1743897865/Root-1-128330176162656250 
        信任级别: Full 
        应用程序虚拟路径: / 
        应用程序路径: E:\GP_System\GP_Web\短信信箱\ 
        计算机名: GP-SMS-WEB 进程信息: 
        进程 ID: 2316 
        进程名: w3wp.exe 
        帐户名: NT AUTHORITY\NETWORK SERVICE 异常信息: 
        异常类型: ExternalException 
        异常消息: 无法执行程序。所执行的命令为 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe" /noconfig /fullpaths @"C:\WINDOWS\TEMP\mm5m6u2z.cmdline"。 
    请求信息: 
        请求 URL: http://www.06688.com.cn/default.aspx?TabID=vipmodify 
        请求路径: /default.aspx 
        用户主机地址: 222.140.58.209 
        用户:  
        是否已经过身份验证: False 
        身份验证类型:  
        线程帐户名: NT AUTHORITY\NETWORK SERVICE 线程信息: 
        线程 ID: 40 
        线程帐户名: NT AUTHORITY\NETWORK SERVICE 
        是否正在模拟: False 
        堆栈跟踪:    在 System.CodeDom.Compiler.Executor.ExecWaitWithCaptureUnimpersonated(SafeUserTokenHandle userToken, String cmd, String currentDir, TempFileCollection tempFiles, String& outputName, String& errorName, String trueCmdLine)
       在 System.CodeDom.Compiler.Executor.ExecWaitWithCapture(SafeUserTokenHandle userToken, String cmd, String currentDir, TempFileCollection tempFiles, String& outputName, String& errorName, String trueCmdLine)
       在 Microsoft.CSharp.CSharpCodeGenerator.Compile(CompilerParameters options, String compilerDirectory, String compilerExe, String arguments, String& outputFile, Int32& nativeReturnValue, String trueArgs)
       在 Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch(CompilerParameters options, String[] fileNames)
       在 Microsoft.CSharp.CSharpCodeGenerator.FromDomBatch(CompilerParameters options, CodeCompileUnit[] ea)
       在 Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromDomBatch(CompilerParameters options, CodeCompileUnit[] ea)
       在 System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromDom(CompilerParameters options, CodeCompileUnit[] compilationUnits)
       在 System.Xml.Xsl.XsltOld.Compiler.CompileAssembly(ScriptingLanguage lang, Hashtable typeDecls, String nsName, Evidence evidence)
       在 System.Xml.Xsl.XsltOld.Compiler.CompileScript(Evidence evidence)
       在 System.Xml.Xsl.XsltOld.Compiler.Compile(NavigatorInput input, XmlResolver xmlResolver, Evidence evidence)
       在 System.Xml.Xsl.XslTransform.Compile(XPathNavigator stylesheet, XmlResolver resolver, Evidence evidence)
       在 System.Xml.Xsl.XslTransform.Load(String url, XmlResolver resolver)
       在 System.Xml.Xsl.XslTransform.Load(String url)
       在 xmlTrans.transform() 位置 e:\GP_System\GP_Web\短信信箱\App_Code\xmlTrans.cs:行号 44
       在 webSection.getSectionInfo1(String sectionID, String userSign, String powerFlag, String isManager) 位置 e:\GP_System\GP_Web\短信信箱\App_Code\webSection.cs:行号 88
       在 _Default.Page_Load(Object sender, EventArgs e) 位置 e:\GP_System\GP_Web\短信信箱\Default.aspx.cs:行号 100
       在 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
       在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
       在 System.Web.UI.Control.OnLoad(EventArgs e)
       在 System.Web.UI.Control.LoadRecursive()
       在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
     
     
    自定义事件详细信息: 有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
      

  5.   

    我们网站用的是web site,这个跟web application有什么区别那?我们没有使用大量的XML Serialization,这个也会非常影响iis的运行吗?
      

  6.   

    你的default.aspx/webSection.cs文件里做XSLT转换么?是每次都需要做的么?不能缓存结果吗?你的XSLT的都做些什么?需要执行内部脚本么?参考XSLT可能的性能问题
    http://support.microsoft.com/kb/325689
      

  7.   

    是的,那个文件是做xslt转换的,而且是每次都需要做,不过没做缓存,
    这个感觉消耗资源很少
    xslt做的很简单的工作,读另一个xml文件,解析对应的节点。不需要执行内部脚本。英文的资料,我看的很慢,也不是很懂啊。谢谢了
      

  8.   

    BUG: "ExternalException: Cannot Execute a Program" Error Message When You Call WebServices from .aspx Page在这个资料里,我看到了是The IIS Lockdown tool 这个工具,导致了这个
    异常消息: 无法执行程序。所执行的命令为 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe" /noconfig /fullpaths @"C:\WINDOWS\TEMP\mm5m6u2z.cmdline"。 不能运行,我也查了IIS Lockdown, 就是说,我们的服务器上已经安装了这个工具,当出现一些危险的事情,这个工具就会运行来组织 非法用户来执行exe文件?
      

  9.   

    建议你使用XslCompiledTransform 对象,同时把对象缓存起来,参考http://blogs.msdn.com/antosha/archive/2006/07/16/xslcompiledtransform-slower-than-xsltransform.aspx
      

  10.   

    事件类型: 警告
    事件来源: ASP.NET 2.0.50727.0
    事件种类: Web 事件 
    事件 ID: 1309
    日期: 2007-8-28
    事件: 17:22:51
    用户: N/A
    计算机: GP-SMS-WEB
    描述:
    事件代码: 3005 
    事件消息: 发生了未处理的异常。 
    事件时间: 2007-8-28 17:22:51 
    事件时间(UTC): 2007-8-28 9:22:51 
    事件 ID: ef606420a5cb4357b3a184f4041c4631 
    事件序列: 11423 
    事件匹配项: 1 
    事件详细信息代码: 0 
     
    应用程序信息: 
        应用程序域: /LM/W3SVC/733701116/Root-6-128327460029218750 
        信任级别: Full 
        应用程序虚拟路径: / 
        应用程序路径: E:\GP_System\GP_Web\短信信箱地市管理网\ 
        计算机名: GP-SMS-WEB 
     
    进程信息: 
        进程 ID: 2680 
        进程名: w3wp.exe 
        帐户名: NT AUTHORITY\NETWORK SERVICE 
     
    异常信息: 
        异常类型: ExternalException 
        异常消息: 无法执行程序。所执行的命令为 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe" /noconfig /fullpaths @"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\190f36f7\c77197bd\ch566wmo.cmdline"。 
     
    请求信息: 
        请求 URL: http://a.06688.com.cn/GetMailboxBasicInfo.aspx 
        请求路径: /GetMailboxBasicInfo.aspx 
        用户主机地址: 222.85.74.31 
        用户:  
        是否已经过身份验证: False 
        身份验证类型:  
        线程帐户名: NT AUTHORITY\NETWORK SERVICE 
     
    线程信息: 
        线程 ID: 18 
        线程帐户名: NT AUTHORITY\NETWORK SERVICE 
        是否正在模拟: False 
        堆栈跟踪:    在 System.CodeDom.Compiler.Executor.ExecWaitWithCaptureUnimpersonated(SafeUserTokenHandle userToken, String cmd, String currentDir, TempFileCollection tempFiles, String& outputName, String& errorName, String trueCmdLine)
       在 System.CodeDom.Compiler.Executor.ExecWaitWithCapture(SafeUserTokenHandle userToken, String cmd, String currentDir, TempFileCollection tempFiles, String& outputName, String& errorName, String trueCmdLine)
       在 Microsoft.CSharp.CSharpCodeGenerator.Compile(CompilerParameters options, String compilerDirectory, String compilerExe, String arguments, String& outputFile, Int32& nativeReturnValue, String trueArgs)
       在 Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch(CompilerParameters options, String[] fileNames)
       在 Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromFileBatch(CompilerParameters options, String[] fileNames)
       在 System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromFile(CompilerParameters options, String[] fileNames)
       在 System.Web.Compilation.AssemblyBuilder.Compile()
       在 System.Web.Compilation.BuildProvidersCompiler.PerformBuild()
       在 System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)
       在 System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
       在 System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
       在 System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert)
       在 System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert)
       在 System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath)
       在 System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath)
       在 System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)
       在 System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
       在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
     
     
    自定义事件详细信息: 有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。谁能解释一下这个异常吗?
      

  11.   

    前面一次的路径是这个
    E:\GP_System\GP_Web\短信信箱\ 这回是这个
    E:\GP_System\GP_Web\短信信箱地市管理网\ 这个路径有访问的权限没?你的GetMailboxBasicInfo.aspx 里面做些什么?这个帖子里提到了类似的错误
    http://blogs.msdn.com/rahulso/archive/2007/01/30/system-codedom-compiler-error.aspx
      

  12.   

    这个帖子里提到了类似的错误
    http://blogs.msdn.com/rahulso/archive/2007/01/30/system-codedom-compiler-error.aspx