Веб-сервисы не работают в моно 4
У меня есть приложение, которое использует Webservices с ASP.Net и должно поддерживать. Поэтому я оттачивал свои навыки по этой теме. У меня нет проблем с запуском Webservice в Windows с VS 2013, но есть проблемы с моно.
Вот ошибка, которую я получаю, когда запускаю код
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
2 ответа
Похоже, страница документации для веб-сервиса еще не реализована. Но веб-сервис должен работать, несмотря на эту ошибку. Вы можете увидеть это, добавив ?WSDL
в конце URL, т.е. http://localhost/WebService1.asmx?WSDL
Это ошибка в моно. Вы можете посмотреть здесь: https://bugzilla.xamarin.com/show_bug.cgi?id=37137