"Adam Ruppe" <destructiona...@gmail.com> wrote in message news:ivms0h$s8p$1...@digitalmars.com... > > Finally, web.d builds on top of dom and cgi to provide a higher > level interface; instead of manually parsing the cgi object, it tries > to do it automatically, to call your functions with reflection. >
I recently started giving your web.d a try, but I'm having trouble figuring out how to use the executable. I have this (a modification of your ApiDemo example): import arsd.cgi; import arsd.web; class ArticlesApi : ApiProvider { private static Document document; private /+static+/ void loadDocument() { if(!document) document = new Document(import("document.html"), true, true); } this() { loadDocument(); } override Document _defaultPage() { auto e = _getGenericContainer(); e.innerText = "Hello!"; return document; } override Element _getGenericContainer() { return document.getElementById("page-content"); } } mixin FancyMain!ArticlesApi; But, when I try to run it through IIS, it just does a 302 redirect to "localstart.asp". I totally forget how HTTP headers are passed to an exe for CGI, but FWIW, if I run it at the command-line, no matter what I give as the argument (or no argument) it just gives back: Status: 302 Found Location: / Cache-Control: private, no-cache="set-cookie" Expires: 0 Pragma: no-cache Content-Type: text/html; charset=utf-8 I don't know if this is related, but something else I should point out anyway: There are a couple places in web.d that call "cgi.setResponseLocation()" with two arguments (the second arg is the bool "false"). But the only setResponseLocation() in cgi.d just takes the one argument, it doesn't have a second argument. So I commented out the ", false" arg to make it compile.