JEg bruger en httphandler:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Caching;
using System.Xml;
namespace StandardV2
{
/// <summary>
/// Summary description for Standards
/// </summary>
public class Standards : IHttpHandler
{
public XmlDocument Standard;
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/xml";
context.Response.Write(getXml().InnerXml);
}
public XmlNode getXml()
{
Cache cacheObject = System.Web.HttpContext.Current.Cache;
XmlNode x;
x = (XmlNode)HttpContext.Current.Cache["Standard"];
if (x == null)
{
Standard = new XmlDocument();
Standard.Load("URL_TIL_XML");
x = Standard.SelectSingleNode("/");
cacheObject.Insert("Standard", x, null, DateTime.Now.AddYears(1), Cache.NoSlidingExpiration);
}
return x;
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
getXml metoden fjerner du eventuelt bare cache fra, og smider en parameter med ned der fortæller hvad der skal vises.
/J
Add -> "Generic Handler" i visual studio.
/J
Det er længe siden jeg har kodet i asp.net. Men hvordan udbyder jeg denne IHttpHandler til brugeren? Håber ikke det er udforståelig.
ok, har fundet en bskrivelse af hvordan jeg brugere handleren
http://mvolo.com/ (...)
Altså en generic handler hedder bare ashx til sidst, den håndteres af IIS uden nogen problemer. Bruger du den som standard document til IIS skal du nok tilføje den til "default document".
Men den burde kunne tilgåes med domæne.dk/service.ashx uden nogle problemer.
Prøv ex bare med:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write("hey");
}
public bool IsReusable
{
get
{
return false;
}
}
Venligst
/J
Nu bruger jeg ikke XmlDocument men XmlReader. Hvordan får jeg fat i xml noderne med Xmlreader?
Er der ikke n nem måde at tage alt indholdet fra XmlReader og skrive det til context.Response.Write (responsen)?