我想在我的 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)