2015-06-16 5 views
7

У меня есть приложение, которое использует Webservices с ASP.Net и должно поддерживать. Так что я обострил свои навыки по этой теме. У меня нет проблем с запуском Webservice в Windows с VS 2013, но у вас проблемы с моно.Веб-службы не работают в моно 4

Здесь ошибка я получаю, когда я запустить код

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 

и вот коды

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; 

     } 
    } 
} 

Я не пропущу здесь. насколько мне известно, он должен просто отлично работать. Вот моя Моно версия

~$ 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 компилятор версии 4.3.0' не 4.0.1 текущей стабильной версии? – ChrFin

+0

Да. У меня были проблемы с IoC со стабильным и обновленным до последнего разработчика, и проблема исчезла. Теперь я сталкиваюсь с новым «голиафом» –

+0

Возможно, что-то не так с вашим кодом; У меня такая же проблема. Когда я копирую код и сборки в другое поле, работающее с моно 4.0.1, оно работает так, как должно! – Lix

ответ

1

Похоже Documentation страницы для веб-сервиса еще не реализована. Но веб-служба должна работать, несмотря на эту ошибку. Вы можете увидеть его, добавив ?WSDL в конце URL-адреса, т. Е. http://localhost/WebService1.asmx?WSDL