多次发生的Web服务错误

时间:2009-11-05 18:01:05

标签: asp.net web-services

在许多计算机上(使用Asp.net 1和2),我们在每次尝试进行Web服务调用时都会看到以下错误,其中包含随机文件名(扩展名为.dll)。< / p>

过去我们不得不重新安装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

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

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

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

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