1

CentOS 用の mono ソース コード (./configure、make、make install を使用) をコンパイルしましたが、問題ないようです。

mono --version
Mono JIT compiler version 2.10.9 (tarball 2013年 01月 02日 星期三 13:43:05 CST)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
    TLS:           __thread
    SIGSEGV:       altstack
    Notifications: epoll
    Architecture:  x86
    Disabled:      none
    Misc:          softdebug 
    LLVM:          supported, not enabled.
    GC:            Included Boehm (with typed GC and Parallel Mark)

しかし、LitJson を呼び出す .ashx ファイルを実行しようとすると、

<p><strong>Description: </strong>HTTP 500. Error processing request.</p>
<p><strong>Stack Trace: </strong></p><table summary="Stack Trace" class="sampleCode">
<tr><td><pre>System.MissingMethodException: Method not found: 'System.Reflection.MethodInfo.op_Inequality'.
  at LitJson.JsonMapper.ToObject (System.Type type, System.String json) [0x00000] in &lt;filename unknown&gt;:0 
  at MobiusServer.Login..ctor (System.String jsondata) [0x00000] in &lt;filename unknown&gt;:0 
  at MobiusServer.MobiusHandler.ProcessRequest (System.Web.HttpContext context) [0x00000] in &lt;filename unknown&gt;:0 
  at System.Web.HttpApplication+&lt;Pipeline&gt;c__Iterator3.MoveNext () [0x00000] in &lt;filename unknown&gt;:0 
  at System.Web.HttpApplication.Tick () [0x00000] in &lt;filename unknown&gt;:0 </pre></td></tr>
</table>
<hr style="color: silver"/><strong>Version information: </strong> Mono Runtime Version: <tt>2.10.9 (tarball 2013/01/02 Wed 13:43:05 CST)</tt>; ASP.NET Version: <tt>2.0.50727.1433</tt></body></html>

<!--
[System.MissingMethodException]: Method not found: 'System.Reflection.MethodInfo.op_Inequality'.
  at LitJson.JsonMapper.ToObject (System.Type type, System.String json) [0x00000] in <filename unknown>:0 
  at MobiusServer.Login..ctor (System.String jsondata) [0x00000] in <filename unknown>:0 
  at MobiusServer.MobiusHandler.ProcessRequest (System.Web.HttpContext context) [0x00000] in <filename unknown>:0 
  at System.Web.HttpApplication+<Pipeline>c__Iterator3.MoveNext () [0x00000] in <filename unknown>:0 
  at System.Web.HttpApplication.Tick () [0x00000] in <filename unknown>:0 
-->

mono 2.10.9 ランタイムもインストールされている mac os x でも同じプログラムを実行できます。私は何か間違ったことをしたか、何かを見逃しましたか?ありがとう!!

4

1 に答える 1

0

丸一日調査した結果、mod_mono は .NET 2.0(mod-mono-server) を使用してプログラムをコンパイルしますが、プログラムには .NET 4.0 が必要であることがわかりました。

以下の mod_mono.conf ファイルを変更した後、問題は解決しました!

# mod_mono.conf

# Achtung! This file may be overwritten
# Use 'include mod_mono.conf' from other configuration file
# to load mod_mono module.

<IfModule !mod_mono.c>
    LoadModule mono_module /usr/lib/httpd/modules/mod_mono.so
</IfModule>

<IfModule mod_headers.c>
    Header set X-Powered-By "Mono"
</IfModule>

MonoAutoApplication enabled
MonoDebug true
MonoServerPath "/etc/mono/bin/mod-mono-server4"
MonoUnixSocket "/tmp/.mod_mono"

AddType application/x-asp-net .aspx
AddType application/x-asp-net .asmx
AddType application/x-asp-net .ashx
AddType application/x-asp-net .asax
AddType application/x-asp-net .ascx
AddType application/x-asp-net .soap
AddType application/x-asp-net .rem
AddType application/x-asp-net .axd
AddType application/x-asp-net .cs
AddType application/x-asp-net .vb
AddType application/x-asp-net .master
AddType application/x-asp-net .sitemap
AddType application/x-asp-net .resources
AddType application/x-asp-net .skin
AddType application/x-asp-net .browser
AddType application/x-asp-net .webinfo
AddType application/x-asp-net .resx
AddType application/x-asp-net .licx
AddType application/x-asp-net .csproj
AddType application/x-asp-net .vbproj
AddType application/x-asp-net .config
AddType application/x-asp-net .Config
AddType application/x-asp-net .dll
DirectoryIndex index.aspx
DirectoryIndex Default.aspx
DirectoryIndex default.aspx
于 2013-01-08T10:09:27.220 に答える