2015-06-16 8 views
7

Ich habe eine App, die Webservices mit ASP.Net verwendet und soll beibehalten werden. Also habe ich meine Fähigkeiten auf dem Thema geschärft. Ich habe kein Problem mit Webservice in Windows mit VS 2013, aber Probleme mit Mono. HierWeb Services funktioniert nicht in Mono 4

ist die Störung, die ich erhalte, wenn ich den Code ausführen

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 

und hier sind die 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; 

     } 
    } 
} 

Ich weiß nicht was ich hier vermisse. Soweit ich weiß, sollte es einfach funktionieren. Hier ist meine 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 
+0

'Mono JIT-Compiler-Version 4.3.0' ist nicht 4.0.1 die aktuelle stabile Version? – ChrFin

+0

Ja. Ich hatte Probleme mit IoC mit stabilen und auf den neuesten Stand der Entwicklung aktualisiert und das Problem verschwunden. Jetzt sehe ich neuen "Goliath" –

+0

Es ist wahrscheinlich nichts falsch mit Ihrem Code; Ich habe das gleiche Problem. Wenn ich den Code und die Assemblies in eine andere Box unter Mono 4.0.1 kopiere, funktioniert es wie es soll! – Lix

Antwort

1

Es ist wie Dokumentationsseite für webservice sieht noch nicht implementiert ist. Aber der Webservice sollte trotz dieses Fehlers funktionieren. Sie können es sehen, indem Sie ?WSDL am Ende der URL hinzufügen, d. H. http://localhost/WebService1.asmx?WSDL