错误 - 找不到文件'C:\WINDOWS\TEMP\xxxxxx.dll'

4

我们在开发服务器上的网站中遇到了这个间歇性错误。每当用户处于内容编辑器中时,页面随机出现此消息,甚至在从网站访问任何网页时也会出现。使用 Sitecore 6.3。.NET Framework 使用的是 3.5。

当事件日志被检查时,会出现以下警告

错误信息为:

Event Type: Warning 
Event Source:   ASP.NET 2.0.50727.0 
Event Category: Web Event  
Event ID:   1309 
Date:       3/26/2013 
Time:       9:26:02 AM 
User:       N/A 
Computer:   XXXXXX 
Description: 
Event code: 3005  
Event message: An unhandled exception has occurred.  
Event time: 3/26/2013 9:26:02 AM  
Event time (UTC): 3/26/2013 9:26:02 AM  
Event ID: 5d6aa660141a4ca0966f5a3fad3b0df6  
Event sequence: 726  
Event occurrence: 2  
Event detail code: 0    
Application information: 
    Application domain: /LM/W3SVC/1829939302/Root-1-130087629613322311 
    Trust level: Full 
    Application Virtual Path: / 
    Application Path: D:\WebSites\Dev\dev1.cms.local\ 
    Machine name: XXXXX    
Process information: 
    Process ID: 7728 
    Process name: w3wp.exe 
    Account name: NT AUTHORITY\NETWORK SERVICE    
Exception information: 
    Exception type: FileNotFoundException 
    Exception message: Could not find file 'C:\WINDOWS\TEMP\vhn7lf5h.dll'.    
Request information: 
    Request URL: http://dev1.cms.local/sitecore/shell/default.aspx?xmlcontrol=RichTextEditor&da=core&id=12b8259DD4D-BD3D-4035-80A4-BC8CB03D260D12d&ed=FIELD280399344&vs&la=en&fld=12b878702CE-F97D-40CB-8F1D-AA7AEBEC8B2412d&so=

Request path: /sitecore/shell/default.aspx 
User host address: 111.11.111.111 
User: sitecore\Anonymous 
Is authenticated: False 
Authentication Type:  
Thread account name: NT AUTHORITY\NETWORK SERVICE    
Thread information: 
    Thread ID: 45 
    Thread account name: NT AUTHORITY\NETWORK SERVICE 
    Is impersonating: False 
    Stack trace:    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)    at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)    at Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch(CompilerParameters options, String[] fileNames)    at Microsoft.CSharp.CSharpCodeGenerator.FromSourceBatch(CompilerParameters options, String[] sources)    at Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromSourceBatch(CompilerParameters options, String[] sources)    at System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromSource(CompilerParameters options, String[] sources)    at Sitecore.CodeDom.Compiler.CSharpCompiler.Compile(String sourceFile, String code, String assemblyFile, StringCollection referencedAssemblies)    at Sitecore.CodeDom.Compiler.CSharpCompiler.Compile(String code, StringCollection referencedAssemblies)    at Sitecore.CodeDom.Compiler.CSharpCompiler.SourceToMemory(String code, StringCollection referencedAssemblies)    at Sitecore.Web.UI.XmlControls.FolderControlSource.BuildControlAssembly(XmlNode fileNode, String& assemblyKey, String& assemblyFile)    at Sitecore.Web.UI.XmlControls.FolderControlSource.GetControlAssembly(String controlName, String& assemblyKey)    at Sitecore.Web.UI.XmlControls.FolderControlSource.ResolveType(String controlName, Boolean includeDynamicTypes)    at Sitecore.Web.UI.XmlControls.ControlSource.GetControlType(String namespacePrefix, String controlName, String mode, Boolean includeDynamicTypes)    at Sitecore.Web.UI.XmlControls.ControlFactory.GetControlType(String controlName, String mode, Boolean includeDynamicTypes)    at Sitecore.Web.UI.XmlControls.ControlFactory.GetControl(Control parent, String controlName, String mode, Object[] properties, AllowGenericControl allowGeneric)    at Sitecore.Web.UI.XmlControls.ControlFactory.GetControl(String controlName)    at Sitecore.Shell.DefaultPage.OnInit(EventArgs e)    at System.Web.UI.Control.InitRecursive(Control namingContainer)    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

任何帮助都将不胜感激。
谢谢。
4个回答

5

我曾经遇到过类似的异常信息:源文件'C:\windows\TEMP\2vddx2j2.0.cs'无法找到,导致内容编辑器无法加载。

Exception: Sitecore.CodeDom.Compiler.CompilerException
Message: Source file 'C:\windows\TEMP\2vddx2j2.0.cs' could not be found
Source: File: , line 0
   at Sitecore.CodeDom.Compiler.CSharpCompiler.AssertResults(String sourceFile, CompilerResults results)
   at Sitecore.CodeDom.Compiler.CSharpCompiler.Compile(String sourceFile, String code, String assemblyFile, StringCollection referencedAssemblies)
   at Sitecore.CodeDom.Compiler.CSharpCompiler.Compile(String code, StringCollection referencedAssemblies)
   at Sitecore.CodeDom.Compiler.CSharpCompiler.SourceToMemory(String code, StringCollection referencedAssemblies)
   at Sitecore.Web.UI.XmlControls.FolderControlSource.BuildControlAssembly(XmlNode fileNode, String& assemblyKey, String& assemblyFile)
   at Sitecore.Web.UI.XmlControls.FolderControlSource.GetControlAssembly(String controlName, String& assemblyKey)
   at Sitecore.Web.UI.XmlControls.FolderControlSource.ResolveType(String controlName, Boolean includeDynamicTypes)
   at Sitecore.Web.UI.XmlControls.ControlSource.GetControlType(String namespacePrefix, String controlName, String mode, Boolean includeDynamicTypes)
   at Sitecore.Web.UI.XmlControls.ControlFactory.GetControlType(String controlName, String mode, Boolean includeDynamicTypes)
   at Sitecore.Web.UI.XmlControls.ControlFactory.GetControl(Control parent, String controlName, String mode, Object[] properties, AllowGenericControl allowGeneric)
   at Sitecore.Web.UI.XmlControls.ControlFactory.GetControl(String controlName, String mode, Object[] properties, AllowGenericControl allowGeneric)
   at Sitecore.Web.UI.XmlControls.ControlFactory.GetControl(String controlName, String mode, Object[] properties)
   at Sitecore.Web.UI.XmlControls.ControlFactory.GetControl(String controlName, String mode)
   at Sitecore.Web.UI.XmlControls.ControlFactory.GetControl(String controlName)
   at Sitecore.Shell.DefaultPage.OnInit(EventArgs e)
   at System.Web.UI.Control.InitRecursive(Control namingContainer)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

原来,应用程序池用户ApplicationPoolIdentity没有对C:\Windows\Temp\目录的写入权限。


1
谢谢!我在Windows 7上也遇到了同样的问题 - 我不得不在Windows\Temp的安全选项卡中添加Network Service用户。我发现这是另一个问题,与顶部的问题不同,但我很高兴找到了这个答案。 - Jan Matousek

3

这篇博客文章确实解决了我们所面临的问题。

我们有这段代码:

System.Diagnostics.Process.Start(RetrievedURL);

在按钮点击时,该代码会在后台生成IE进程(由于IE是Web服务器上的默认浏览器)并打开网页,这样做并不明智,但我们已经删除了该代码,这确实停止了后台的IE进程。

感谢Slobodan Stipic(也称为Slobo)的研究和这篇博客文章。

希望这个解决方案能帮助今后的其他人。


-1

如果您正在使用虚拟机,请尝试重新启动它。


-1
尝试将IIS应用程序池身份设置为Network Service。确保C:\ Windows \ Temp在安全选项卡中具有Network Service用户,并拥有完全控制权限。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接