Пропущенный метод, исключение моно
Я хочу запустить свое приложение C#, скомпилированное в Windows, на моем сервере Ubuntu.
Я использую.Net Framework версии 4.5 (не могу изменить его из-за некоторых сторонних API).
У меня установлена самая актуальная версия Mono (2.10.8) для Ubuntu. Мое приложение скомпилировано с VisualStudio 2012 в ОС Windows (7).
Я пытаюсь сделать несколько запросов 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 AND set_host в настоящее время не реализованы в Mono. (Я обновил свою версию до 3.x)
1 ответ
.NET 4.5 не поддерживается в Mono 2.x, выполните обновление до Mono 3.x.
У вас есть руководство здесь: Установка Mono 3.x в Ubuntu/Debian