web*_*oob 6 asp.net delphi serialization iis-7 xml-serialization
这是我尝试过的:
我的设置如下:
Windows 2008专用服务器上的IIS7.该网站使用Delphi在ASP.NET中编写.我有几个需要序列化的XML文件,而不仅仅是一个.我的网站与Web服务进行对话并处理XML(我猜这是打破一切的部分)
除了列出的内容之外,有没有人有任何建议?我已经阅读了有关使用SGEN预编译序列化对象的信息,但这是否适用于多个XML文件?我真的不太了解它.
这是一个例子:
这是我的一个XML文件的代码.StockXMLSer在全球范围内举行,测试后每个站点只创建一次.
function IntGetSTOCK_ITEMS(S: TStream): STOCK_ITEMS;
begin
if not Assigned(StockXMLSer) then begin
StockXMLSer := XmlSerializer.Create(STOCK_ITEMS.ClassInfo);
OutputDebugString('StockXMLSer Serializer Created');
end;
Result := STOCK_ITEMS(StockXMLSer.Deserialize(S));
end;
Run Code Online (Sandbox Code Playgroud)
您需要向代码添加一些设置,以便能够调试序列化代码。请查阅 msdn 上的以下文章。
还有一个巧妙的技巧,可以将创建的文件保留在临时文件夹中,以便您可以看到发生了什么。
正常情况下,XmlSerializer 会在不再需要序列化类的 C# 源文件时将其删除。然而,有一个未记录的诊断开关,它将指示 XmlSerializer 删除将这些文件保留在磁盘上。您可以在应用程序的 .config 文件中设置开关:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
<switches>
<add name="XmlSerialization.Compilation" value="4" />
</switches>
</system.diagnostics>
</configuration>
Run Code Online (Sandbox Code Playgroud)
通过 .config 文件中存在此开关,C# 源文件将保留在临时目录中。如果您使用的是运行 Windows 2000 或更高版本的计算机,则对于在 ASPNET 帐户下运行的 Web 应用程序,临时目录的默认位置是 \Documents and Settings\\LocalSettings\Temp 或 \Temp。C# 文件很容易被错过,因为它们的文件名看起来非常奇怪,是随机生成的,例如:bdz6lq-t.0.cs。XmlSerializerPreCompiler 设置此诊断开关,以便您可以打开文件来检查 XmlSerializerPreCompiler 在记事本或 Visual Studio 中报告编译错误的行。
| 归档时间: |
|
| 查看次数: |
11597 次 |
| 最近记录: |