2009-12-10 54 views
1

我有一个Web服务,不使用任何XML属性序列化。我只是从Web服务返回一个字符串。在这种情况下,序列化DLL会被创建吗?是否始终生成myAssembly.xmlSerializer.dll?

我问的原因是我每隔几周都会看到c:\ windows \ temp \ xxxxx.dll(其中xxxxx是一个随机的字符序列)运行Web服务。一种解决方案是使用sgen.exe进行预编译,这可能会解决问题。

此外,我看到一个链接,表示只对客户端库执行此操作,但此错误位于Web服务端(服务器端),所以我仍然可以使用sgen.exe?

JD

回答

2

每次调用XmlSerializer构造函数,它会检查你正在试图序列类型,它会生成一个临时组装。如果程序集已经存在,它将重新使用它。因此,如果您的Web服务是传统的ASMX服务,则无论返回类型如何,它都将在每个请求中使用XmlSerializer。这些临时程序集是序列化过程的一部分,在我看来,你不应该太担心它们。

+0

谢谢Darin。所以sgen.exe不会帮助避免错误?我正在考虑将应用程序池回收周期从默认的29小时改为大约15小时,并查看是否有任何影响。 – 2009-12-10 11:02:12

+0

@JD,你说你看到临时文件夹中生成的所有这些临时程序集,但是你没有提到有关错误的任何信息? – 2009-12-10 11:04:19

+0

@Darin:几个星期后,每个Web服务都会生成一个错误“System.Web.Services.Protocols.SoapException:服务器无法处理请求---> System.IO.FileNotFoundException:找不到文件'c :\ windows \ Temp \ xxxxxx.dll'“,其中每个请求的xxxxx都会更改。我发布了一段时间:http://stackoverflow.com/questions/1682425/web-service-error-that-has-occurred-several-times – 2009-12-10 12:03:36

相关问题