|
View:
New views
2 Messages
—
Rating Filter:
Alert me
|
|
|
GetMethodFromHandle and mod mono web serviceHello,
I am getting a System.NotImplementedException when trying to invoke GetMethodFromHandle through a Web Service. I know this method has only recently been implemented and I therefore use the latest mono packages from 2007 07 06. The method works fine if I call it directly. I get the exception only when trying to invoke the method through Web Service. Here is the code of the method: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ using System; using System.Data; using System.Web; using System.Collections; using System.Web.Services; using System.Web.Services.Protocols; using System.ComponentModel; using System.Collections.Generic; namespace WebService1 { /// <summary> /// Description résumée de Service1 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ToolboxItem(false)] public class Service1 : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } [WebMethod] public string GetMethodFromHandle() { Console.WriteLine("Hello World!"); TestClass<int> test = new TestClass<int>(); RuntimeMethodHandle methodHandle = test.GetType().GetProperty("MyList").GetGetMethod().MethodHandle; System.Reflection.MethodBase methodBase = System.Reflection.MethodInfo.GetMethodFromHandle(methodHandle, typeof(TestClass<int>).TypeHandle); List<int> list = (List<int>)methodBase.Invoke(test, null); return list.Count.ToString() ; } } } using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Collections.Generic; namespace WebService1 { public class TestClass<T> { private List<T> _myList = new List<T>(); public List<T> MyList { get { return _myList; } } } } $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ Here is my httpd.conf file from apache: ### Global Environment ###################################################### # # The directives in this section affect the overall operation of Apache, # such as the number of concurrent requests. # run under this user/group id Include /etc/apache2/uid.conf # - how many server processes to start (server pool regulation) # - usage of KeepAlive Include /etc/apache2/server-tuning.conf # ErrorLog: The location of the error log file. # If you do not specify an ErrorLog directive within a <VirtualHost> # container, error messages relating to that virtual host will be # logged here. If you *do* define an error logfile for a <VirtualHost> # container, that host's errors will be logged there and not here. ErrorLog /var/log/apache2/error_log # generated from APACHE_MODULES in /etc/sysconfig/apache2 Include /etc/apache2/sysconfig.d/loadmodule.conf # IP addresses / ports to listen on Include /etc/apache2/listen.conf # predefined logging formats Include /etc/apache2/mod_log_config.conf # generated from global settings in /etc/sysconfig/apache2 Include /etc/apache2/sysconfig.d/global.conf # optional mod_status, mod_info Include /etc/apache2/mod_status.conf Include /etc/apache2/mod_info.conf # optional cookie-based user tracking # read the documentation before using it!! Include /etc/apache2/mod_usertrack.conf # configuration of server-generated directory listings Include /etc/apache2/mod_autoindex-defaults.conf # associate MIME types with filename extensions TypesConfig /etc/apache2/mime.types DefaultType text/plain Include /etc/apache2/mod_mime-defaults.conf # set up (customizable) error responses Include /etc/apache2/errors.conf # global (server-wide) SSL configuration, that is not specific to # any virtual host Include /etc/apache2/ssl-global.conf # forbid access to the entire filesystem by default <Directory /> Options None AllowOverride None Order deny,allow Deny from all </Directory> # use .htaccess files for overriding, AccessFileName .htaccess # and never show them <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> # List of resources to look for when the client requests a directory #DirectoryIndex index.html index.html.var DirectoryIndex Default.aspx index.html index.html.var ### 'Main' server configuration ############################################# # # The directives in this section set up the values used by the 'main' # server, which responds to any requests that aren't handled by a # <VirtualHost> definition. These values also provide defaults for # any <VirtualHost> containers you may define later in the file. # # All of these directives may appear inside <VirtualHost> containers, # in which case these default settings will be overridden for the # virtual host being defined. # Include /etc/apache2/default-server.conf # Another way to include your own files # # The file below is generated from /etc/sysconfig/apache2, # include arbitrary files as named in APACHE_CONF_INCLUDE_FILES and # APACHE_CONF_INCLUDE_DIRS Include /etc/apache2/sysconfig.d/include.conf ### Virtual server configuration ############################################ # # VirtualHost: If you want to maintain multiple domains/hostnames on your # machine you can setup VirtualHost containers for them. Most configurations # use only name-based virtual hosts so the server doesn't need to worry about # IP addresses. This is indicated by the asterisks in the directives below. # # Please see the documentation at # <URL:http://httpd.apache.org/docs-2.2/vhosts/> # for further details before you try to setup virtual hosts. # # You may use the command line option '-S' to verify your virtual host # configuration. # Include /etc/apache2/vhosts.d/*.conf # Note: instead of adding your own configuration here, consider # adding it in your own file (/etc/apache2/httpd.conf.local) # putting its name into APACHE_CONF_INCLUDE_FILES in # /etc/sysconfig/apache2 -- this will make system updates # easier :) #Note: Config Section for asp.net web applications with mod-mono and apache #*********************************************************** #WebService1 MonoServerPath default /usr/bin/mod-mono-server2 LoadModule mono_module modules/mod_mono.so Alias /webservice1 "/srv/www/htdocs/WebService1/WebService1" AddMonoApplications default "/webservice1:/srv/www/htdocs/WebService1/WebService1" <Location /webservice1> SetHandler mono </Location> #************************************************************ <Location /mono> SetHandler mono-ctrl Order deny,allow Deny from all Allow from 192.168.1.70 Allow from localhost </Location> $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ And finally this is the error message I am receiving: The remote server returned an error: (500) Internal Server Error. System.NotImplementedException: The requested feature is not implemented. at System.Reflection.MethodBase.GetMethodFromHandle (RuntimeMethodHandle handle, RuntimeTypeHandle declaringType) [0x00000] at WebService1.Service1.GetMethodFromHandle () [0x00000] at <0x00000> <unknown method> at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[]) at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ My mono compiler version is : Mono JIT compiler version 20070706 (tarball) Copyright (C) 2002-2007 Novell, Inc and Contributors. www.mono-project.com TLS: __thread GC: Included Boehm (with typed GC) SIGSEGV: normal Architecture: x86 Disabled: none $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ I don't know how exactly mod mono works, but I'm guessing it's using the compiler installed on my computer no? So I don't understand why I get the exception, although through direct call it works. Thanks for your help, Matthias |
|
|
Re: GetMethodFromHandle and mod mono web serviceMatthias Blondeel wrote:
> I don't know how exactly mod mono works, but I'm guessing it's using the > compiler installed on my computer no? So I don't understand why I get the > exception, although through direct call it works. Mod_mono is using the runtime it was compiled for, usually /usr/bin/mono, /usr/bin/mcs, etc. I guess you have 2 mono versions installed, one of them no being up-to-date. Insert this into your apache config right after LoadModule mono_module modules/mod_mono.so: MonoServerPath /path/to/mod-mono-server or MonoServerPath /path/to/mod-mono-server2 for .NET 2.0 Robert _______________________________________________ Mono-list maillist - Mono-list@... http://lists.ximian.com/mailman/listinfo/mono-list |
| Free embeddable forum powered by Nabble | Forum Help |