Asp.net 多次发生的Web服务错误

Asp.net 多次发生的Web服务错误,asp.net,web-services,Asp.net,Web Services,在许多机器上(使用Asp.net 1和2),我们看到了以下错误,每次尝试进行web服务调用时都会产生一个随机文件名(扩展名为.dll) 在过去,我们不得不重新安装asp.net,这似乎已经解决了这个问题 然而,有一次我们试图获取命令提示符,windows返回一个关于资源不足的错误。重新启动服务器似乎解决了此问题 知道是什么导致了这个错误吗 错误如下: System.Web.Services.Protocols.SoapException: Server was unable to process

在许多机器上(使用Asp.net 1和2),我们看到了以下错误,每次尝试进行web服务调用时都会产生一个随机文件名(扩展名为
.dll

在过去,我们不得不重新安装asp.net,这似乎已经解决了这个问题

然而,有一次我们试图获取命令提示符,windows返回一个关于资源不足的错误。重新启动服务器似乎解决了此问题

知道是什么导致了这个错误吗

错误如下:

System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.IO.FileNotFoundException: Could not find file 'c:\windows\Temp\aweww1ss.dll'.
File name: 'c:\Windows\Temp\aweww1ss.dll'
   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 System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence)
   at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies)
   at System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence)
   at System.Xml.Serialization.XmlSerializer.FromMappings(XmlMapping[] mappings, Evidence evidence)
   at System.Web.Services.Protocols.SoapServerType..ctor(Type type, WebServiceProtocols protocolsSupported)
   at System.Web.Services.Protocols.SoapServerProtocol.Initialize()
   at System.Web.Services.Protocols.ServerProtocol.SetContext(Ty

如果重新启动解决了这个问题,这意味着您的计算机基本上耗尽了临时文件存储空间,那么您的正则表达式和许多涉及动态编译(aspx等)的工具将创建大量临时文件,重新启动服务器或清理临时文件应该可以解决这个问题

.NET应用程序长时间运行有点不好,我们在几天没有重新启动它们时出现了服务器问题。。。然后随着时间的推移,日志、内存碎片整理等越来越大,我认为这有时会减慢一切。NET应用程序通常不会移除它们打开的资源上的锁,这不是开发人员的错,但是.NET垃圾收集并没有那么聪明,所以如果文件没有关闭和删除,您的临时文件可能会增加


最好是定期进行软重启,如每周一次,周日晚上等,这将有助于更好地管理.net应用程序。

每次调用web服务都会发生这种情况吗?如果是这样,则可能是C:\Windows\Temp文件夹的权限问题

对于web服务,.NET运行时在临时文件夹中创建动态序列化程序集


要解决此问题,您需要授予您的服务在临时文件夹的写访问权限下运行的身份。

嗨,阿卡什,在.net方面没有太多经验,如果我给我的经理很好的解释,我想他不会相信我的。你能给我一些更多的信息或链接,帮助我说服他定期重新启动机器吗?另外,正如我提到的,我们有几次不得不重新安装asp.net。这是相关的吗?我知道,这很难,但我没有看到任何关于它的链接,但这只是我们的经验,我们的服务器会变慢,就像一个页面请求在几分之一秒内到达,在服务器上没有负载的一个月后,需要20-30秒,我们绘制了图表,我们发现周日晚上重新启动可以解决问题。您的问题是临时文件,您可以创建一个工具来删除临时文件,但这是一个问题,因为某些实时进程可能需要临时文件,这就是为什么重新启动是唯一的解决方案,但是我将关注任何链接并将在此处发布。重新安装asp.net将关闭iis,因此,所有临时文件锁都会终止,重新启动时会删除临时文件。很简单,你的临时文件增长太快,旧的文件没有被删除。我读了一些关于动态编译的文章,但我不明白的是,如果web服务只编译一次(第一次调用时),而且从不更改,为什么会不断创建大量临时文件?您还提到了正则表达式,它是如何创建临时文件的?web服务已经运行了好几个星期,然后我们遇到了这些错误。这发生在几个没有任何权限更改的机器上。