Windows でコンパイルした C# アプリを Ubuntu サーバーで実行したいと考えています。
私は .Net Framework バージョン 4.5 を使用しています (一部のサード パーティ API が原因で変更できません)。
Ubuntu 用の最も実際の Mono バージョン (2.10.8) がインストールされています。私のアプリケーションは、Windows OS (7) 上の VisualStudio 2012 でコンパイルされています。
他の Web サイトに 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 にアップグレードしました)