[Mono-list] C# Web Services : bad WSDL generation

Sébastien Mosser mosser at polytech.unice.fr
Sun Oct 15 05:37:52 EDT 2006


Hi everybody.

I'm working on C# web services with my french research team, and I've
got some troubles using gmcs & xsp.

When I run my HelloWorld Web Service in xsp2 (service dll was compiled
using gmcs), I've got the following error printed in the web page
(http://localhost:8080/HelloWorld.asmx) :

This web service does not conform to WS-I Basic Profile v1.0
    * R2701: The wsdl:binding element in a DESCRIPTION MUST be
constructed so that its soapbind:binding child element specifies the
transport attribute
          o Binding 'HelloWorldHttpGet', in Service Description
'http://petitroll.free.fr/WS/hello'
          o Binding 'HelloWorldHttpPost', in Service Description
'http://petitroll.free.fr/WS/hello'

If I try to build a proxy, using wsdl, no problems. using wsdl2, same
error shoot again :'(

petitroll at bartimeus:~$ wsdl2 http://bartimeus:8080/HelloWorld.asmx?WSDL
Web Services Description Language Utility
Mono Framework v2.0.50727.42
There where some warnings while generating the code:
  http://bartimeus:8080/HelloWorld.asmx?WSDL
[same text as above, describing R2701 error]

The same problem append on my iBook and on my Kubuntu :'(.

I'm using the following asmx file :
petitroll at bartimeus:~/HelloWs$ cat HelloWorld.asmx
<%@ WebService Language="C#" Class="Rainbow.HelloWorld" %>
petitroll at bartimeus:~/HelloWs$

And the following code-behind file, compiled by :
gmcs -t:library -r:System.Web.Services \
             -out:bin/HelloWorld.dll HelloWorld.cs

petitroll at bartimeus:~/HelloWs$ cat HelloWorld.cs
/** My first Web service using Mono
 * author    : Sebastian Mosser
 * institute : Polytech'Sophia / CNRS / I3S / Rainbow Team
 * Date      : October 2006
 */

using System;
using System.Web.Services;

namespace Rainbow
{
  [WebService(Namespace="http://rainbow.essi.fr/isl4ws/sandbox",
              Description="My first Mono Web Service ;-) ")]
  public class HelloWorld : System.Web.Services.WebService
  {

    [WebMethod(Description="Say Hello to someone")]
    public string SayHello(string who)
    {
      return String.Format("Hello, {0} !", who);
    }

    [WebMethod(Description="Say Hello to the World !")]
    public string HelloToTheWorld()
    {
      return SayHello("world");
    }
  }
}
petitroll at bartimeus:~/HelloWs$

If somebody has an idea ... ^_^

Thanks !

-- 
 Sebastian Mosser
 Polytechnic School of Nice / Sophia - Antipolis
 Templar's Knights Campus, CS Department


More information about the Mono-list mailing list