1

我想在我的 Ubuntu 服务器上执行我在 Windows 中编译的 C# 应用程序。

我正在使用 .Net Framework 4.5 版(由于某些 3rd 方 api 的原因,无法更改它)。

我安装了适用于 Ubuntu 的最实际的 Mono 版本(2.10.8)。我的应用程序是在 Windows 操作系统 (7) 上使用 VisualStudio 2012 编译的。

我正在尝试向其他网站发出一些 Post 请求并解析数据。这是创建请求的代码(在 Windows 上完美运行):

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri.AbsoluteUri);

req.UserAgent = this.UserAgent;
req.CookieContainer = this.Cookies;
req.Referer = this.Location;
req.Host = uri.Host;
req.AllowAutoRedirect = false;

我从 Mono 得到的错误来自这里:

Unhandled Exception: System.MissingMethodException: Method not found: 'System.Net.HttpWebRequest.set_Date'.
  at manager.http.HttpBrowser.GetPostWebRequest (System.String url, System.Collections.Generic.Dictionary`2 postdata, System.Collections.Generic.Dictionary`2 headers) [0x00000] in <filename unknown>:0
  at manager.http.HttpBrowser.Post (System.String url, System.Collections.Generic.Dictionary`2 postdata, System.Collections.Generic.Dictionary`2 headers) [0x00000] in <filename unknown>:0
  at manager.http.HttpBrowser.Post (System.String url, System.Collections.Generic.Dictionary`2 postdata) [0x00000] in <filename unknown>:0
  at manager.networks.components.MyClass.MyMethod() [0x00000] in <filename unknown>:0
  at manager.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.MissingMethodException: Method not found: 'System.Net.HttpWebRequest.set_Date'.
  at manager.http.HttpBrowser.GetPostWebRequest (System.String url, System.Collections.Generic.Dictionary`2 postdata, System.Collections.Generic.Dictionary`2 headers) [0x00000] in <filename unknown>:0
  at manager.http.HttpBrowser.Post (System.String url, System.Collections.Generic.Dictionary`2 postdata, System.Collections.Generic.Dictionary`2 headers) [0x00000] in <filename unknown>:0
  at manager.http.HttpBrowser.Post (System.String url, System.Collections.Generic.Dictionary`2 postdata) [0x00000] in <filename unknown>:0
  at manager.networks.components.MyClass.MyMethod() [0x00000] in <filename unknown>:0
  at manager.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0

我现在用谷歌搜索了 2 天,但找不到解决方案。:(

更新:

属性 set_Date 和 set_host 当前未在 Mono 中实现。(我将我的版本升级到 3.x)

4

1 回答 1

3

Mono 2.x 不支持 .NET 4.5,请升级到 Mono 3.x。

你在这里有一个指南:在 Ubuntu/Debian 中安装 Mono 3.x

于 2013-11-24T21:37:41.757 回答