【发布时间】:2016-01-14 21:26:40
【问题描述】:
目前,我正在将 SOAP 请求的响应序列化为本地磁盘上的 XML 文件。用户可以在运行初始请求后随时查看 XML 的内容,因此我需要将 XML 存储在某个地方。我正在构建的应用程序将在 Azure Web 应用程序上运行,根据我收集的信息,我无法写入这些服务器上的磁盘。所以下一个最好的事情是在我的数据库中创建一个简单的表并存储序列化的 XML。我的问题是,我无法使用 System.XML.XmlSerializer.Serialize 序列化 XML,因为该方法需要 StreamWriter,并且无法访问文件系统,我无法初始化 System.IO.StreamWriter。
我的序列化方法是这样的:
/* Simplified SOAP request / response */
SoapClient client = new SoapClient();
SoapResponse response = client.GetReport(soapRequest); //soapRequest = valid soap envelope
StreamWriter stWriter = null;
XmlSerializer xmlSerializer;
string filePath = @"C:\ReportXml\reportName.xml"
xmlSerializer = new XmlSerializer(response.GetType());
stWriter = new StreamWriter(filePath);
xmlSerializer.Serialize(stWriter, response);
这不适用于 Azure。有什么解决办法吗?在不将其写入磁盘的情况下序列化 XML 的某种方式?
【问题讨论】:
-
只需将其序列化为 MemoryStream。
标签: .net azure asp.net-mvc-5