4

几天来,我一直在尝试在 Centos 6.3 上运行的 XSP 2.10 软件包中获取 mono 3.0 和 nginx 1.2.4 和 fastcgi-mono-serverX ...XSP4 服务器工作但我无法让 fastcgi 方法工作。

我从源代码构建并测试了 mono 3.0,它工作正常。

我按照http://www.mono-project.com/FastCGI_Nginx 上的配置无济于事,并从 nginx 站点进行了许多其他设置。

...当前的 XSP 2.10 模块是否适用于单声道 3.0?
...我应该将单声道降级到 2.11.4 以使用 XSP 2.10 吗?...最终我想运行 ASP.Net 4.0 Web Forms

更新:这是来自 mono-server.log 的一些输出:

    Server stack trace: 
  at Mono.WebServer.FastCgi.ApplicationHost.ProcessRequest (Mono.WebServer.FastCgi.Responder responder) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) Mono.WebServer.FastCgi.ApplicationHost:ProcessRequest (Mono.WebServer.FastCgi.Responder)
  at (wrapper xdomain-dispatch) Mono.WebServer.FastCgi.ApplicationHost:ProcessRequest (object,byte[]&,byte[]&)

Exception rethrown at [0]: 
 ---> System.InvalidCastException: Cannot cast from source type to destination type.
  at System.Configuration.ConfigurationManager.get_AppSettings () [0x00000] in <filename unknown>:0 
  at Mono.WebServer.FastCgi.WorkerRequest..cctor () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at (wrapper xdomain-invoke) Mono.WebServer.FastCgi.ApplicationHost:ProcessRequest (Mono.WebServer.FastCgi.Responder)
  at (wrapper remoting-invoke-with-check) Mono.WebServer.FastCgi.ApplicationHost:ProcessRequest (Mono.WebServer.FastCgi.Responder)
  at Mono.WebServer.FastCgi.Responder.Process () [0x00000] in <filename unknown>:0 
[2012-11-05 12:35:14Z] Error   Failed to process connection. Reason: The object was used after being disposed.
4

2 回答 2

3

如果您使用 Mono 3.0,也请使用来自xsp的 3.x 标记。故事结局。

此外,为了避免像3582这样的错误,请使用 Mono 3.0.3 或更高版本。

于 2013-08-01T12:28:27.643 回答
3

我正要向 Xamarin 提交错误报告……然后我发现了一年前提交的错误报告。

https://bugzilla.xamarin.com/show_bug.cgi?id=2876

tl;博士

您需要更新 shell 脚本(用 找到which mono-fastcgi-server4),然后mono-fastcgi-server4.exe/usr/lib/mono/4.0./usr/lib/mono/4.5

更长的解释

如前所述,我mono-fastcgi-server4直接使用来自主要规范Ubuntu 源的包,其中列出了这些文件内容

/usr/bin/fastcgi-mono-server4
/usr/lib/mono/4.0/fastcgi-mono-server4.exe
/usr/lib/mono/gac/fastcgi-mono-server4/2.10.0.0__0738eb9f132ed756/fastcgi-mono-server4.exe
/usr/share/doc/mono-fastcgi-server4/AUTHORS
/usr/share/doc/mono-fastcgi-server4/NEWS.gz
/usr/share/doc/mono-fastcgi-server4/README
/usr/share/doc/mono-fastcgi-server4/README.Debian
/usr/share/doc/mono-fastcgi-server4/changelog.Debian.gz
/usr/share/doc/mono-fastcgi-server4/copyright
/usr/share/man/man1/fastcgi-mono-server4.1.gz

基于错误报告解决方案,我能够得到这个工作。本质上,您编辑用于fastcgi-mono-server4.exe手动启动的 shell 脚本(应该在 中/usr/bin),并手动移动 .exe 文件...或者...您可以使用我合并到deploy:setupCapistrano 脚本中的这个小脚本. 它用于sed更新脚本。

fastcgi=$(which fastcgi-mono-server4) &&
sudo sed -i.bak -e 's/4\\.0/4.5/' $fastcgi &&
fastcgi_src='/usr/lib/mono/4.0/fastcgi-mono-server4.exe' &&
fastcgi_dest='/usr/lib/mono/4.5/fastcgi-mono-server4.exe' &&
if [ -f "$fastcgi_src" ]; then sudo mv $fastcgi_src $fastcgi_dest; fi;

该报告似乎也相关 https://bugzilla.xamarin.com/show_bug.cgi?id=3582

于 2013-01-26T15:24:15.983 回答