I have an app that uses Webservices with ASP.Net and am supposed to maintain. So I was sharpening my skills on the topic. I have no problem running Webservice in Window with VS 2013 but have issues with mono.
Here is the error I get when I run the code
System.ArgumentNullException
Value cannot be null.
Parameter name: path1
Description: HTTP 500.Error processing request.
Details: Non-web exception. Exception origin (name of application or object): mscorlib.
Exception stack trace:
at System.IO.Path.Combine (System.String path1, System.String path2) [0x00006] in <filename unknown>:0
at System.Web.Services.Configuration.WsdlHelpGeneratorElement.get_HelpGeneratorPath () [0x0000c] in <filename unknown>:0
at System.Web.Services.Protocols.DocumentationServerProtocol.Initialize () [0x001f1] in <filename unknown>:0
at System.Web.Services.Protocols.ServerProtocol.SetContext (System.Type type, System.Web.HttpContext context, System.Web.HttpRequest request, System.Web.HttpResponse response) [0x00022] in <filename unknown>:0
at System.Web.Services.Protocols.ServerProtocolFactory.Create (System.Type type, System.Web.HttpContext context, System.Web.HttpRequest request, System.Web.HttpResponse response, System.Boolean& abortProcessing) [0x00014] in <filename unknown>:0
and here are the codes
WebService1.asmx
<%@ WebService Language="C#" CodeBehind="WebService1.asmx.cs" Class="DemoService.WebService1" %>
WebService1.asmx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Xml;
namespace DemoService
{
/// <summary>
/// Summary description for WebService1
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod]
public XmlElement AddMe(int a, int b)
{
XmlDocument doc = new XmlDocument();
for(int i=0; i<5; i++)
{
XmlNode n = doc.CreateNode( XmlNodeType.Element, i.ToString(), "me.com.aisee");
for(int j=0; j<5; j++)
{
//n.AppendChild(doc.CreateElement(j.ToString()));
}
}
return doc.DocumentElement;
}
}
}
I don't what I miss here. to the best of my knowledge, it should just work fine. Here is my Mono version
~$ mono --version
Mono JIT compiler version 4.3.0 (tarball Fri Jun 12 11:43:58 UTC 2015)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: sgen
That's a bug in mono. You may look at here: https://bugzilla.xamarin.com/show_bug.cgi?id=37137
and https://bugzilla.xamarin.com/show_bug.cgi?id=39772
It looks like Documentation page for webservice is not implemented yet. But the webservice should work despite this error. You can see it by adding
?WSDL
at the end of url, i.e http://localhost/WebService1.asmx?WSDL