[Zope] xmlrpc and fastcgi on IIS

Marco Catunda catunda@embratel.net.br
09 Sep 2002 11:34:37 -0300


Dieter,

	I don't what is happen. But I think the problem
is on fastcgi or IIS. I did't try it at apache.

	I've debuged the Zope code, the main problem
is on the following code at ZPublisher/HTTPRequest.py:

       fs=FieldStorage(fp=fp,environ=environ,keep_blank_values=1)
        if not hasattr(fs,'list') or fs.list is None:
            # Hm, maybe it's an XML-RPC
            if (fs.headers.has_key('content-type') and
                fs.headers['content-type'] == 'text/xml' and
                method == 'POST'):
                # Ye haaa, XML-RPC!
                global xmlrpc
                if xmlrpc is None: import xmlrpc
                meth, self.args = xmlrpc.parse_input(fs.value)
                response=xmlrpc.response(response)
                other['RESPONSE']=self.response=response
                other['REQUEST_METHOD']='' # We don't want index_html!
                self.maybe_webdav_client = 0
            else:
                self._file=fs.file
        else:
            fslist=fs.list
            tuple_items={}
            lt=type([])
            CGI_name=isCGI_NAME
            defaults={}
            converter=seqf=None

	The first statement 'if' try to find a list attribute at
fs variable. At fastcgi xmlrpc request the list attribute is '[]', 
so this statement is false on xml-rpc request and Zope think
this is a html request. I don't know why in fastcgi xml-rpc 
request is '[]'.

--
Marco Catunda





On Fri, 2002-09-06 at 15:10, Dieter Maurer wrote:
> Marco Catunda writes:
>  > 	I have tried to use xmlrpc on fastcgi zope support at
>  > 	IIS. I think IIS doesn't pass correct headers to zope,
>  > 	so Zope understand the xmlrpc request as html request.
> As fas as I know, XML-RPC does not need any special headers
> beside the "Content-Type: text/xml". It is very unlikely, that
> it is stripped.
> 
>  > ...
>  > 	Is there other idea to resolve it?
> In my view, XML-RPC through fastcgi schould work.
> 
> What happens? In what way, does it not work for you?
> Maybe, a TCP-Logger (such as Shane's "tcpwatch") may help
> you to understand what goes wrong.