.net 如何使用.ashx中的XmlTextWriter为myXMLHttpRequest.responseXML生成xml

.net 如何使用.ashx中的XmlTextWriter为myXMLHttpRequest.responseXML生成xml,.net,ashx,xmltextwriter,.net,Ashx,Xmltextwriter,我在.ashx页面中尝试了它,但在myXMLHttpRequest.status中出现了错误500,我不知道问题出在哪里。一个生成简单xml的简单代码会非常好。比如: <properties> <property> <address>812 Gwyn Ave</address> </property> <property> <address>3308 James Ave S</ad

我在.ashx页面中尝试了它,但在myXMLHttpRequest.status中出现了错误500,我不知道问题出在哪里。一个生成简单xml的简单代码会非常好。比如:

<properties>
 <property>
   <address>812 Gwyn Ave</address>    
 </property>
 <property>
   <address>3308 James Ave S</address>    
 </property>
</properties>

现在没有访问VisualStudio的权限,所以请从头开始执行此操作。你应该从五点开始

public void ProcessRequest(HttpContext context)
{
    context.Response.ContentType = "text/xml";

    using (XmlWriter writer = XmlWriter.Create(context.Response.OutputStream))
    {
        writer.WriteStartDocument();
        // do xmlwriter stuff here.
        writer.WriteEndDocument();
    }
}
更新:

我确实想把OutputStream放在那里。我更新了示例以反映这一点

我已经简要地看过你的代码了。我可以看出您没有将xmlwriter的结果输出到HttpResponse。我的示例是通过将其绑定到Context.Response.OutputStream来实现的,这应该是它无法工作的原因之一。虽然我不明白为什么会出现500错误。也许您应该在VisualStudio中运行,看看是否有任何错误会导致这种情况

我还注意到您使用了reader[0]。这在技术上可能是正确的,我建议您使用以下更安全的方法:

int fieldIndex = reader.GetOrdinal("address");
reader.GetString(fieldIndex);

这将确保您始终从查询中获得所需的字段。即使将来您决定更改数据库架构以添加更多列。

您能与我们分享您尝试的解决方案吗?在您的代码上下文中。Response.ResponseStream ResponseStream在我的visual studio中是未知的!你是说OutputStream吗?
int fieldIndex = reader.GetOrdinal("address");
reader.GetString(fieldIndex);