Отсутствует исключение метода моно

Я хочу выполнить свое приложение C#, скомпилированное в Windows, на своем сервере Ubuntu.

Я использую .Net Framework версии 4.5 (не могу изменить его из-за некоторых сторонних API).

У меня установлена ​​самая актуальная версия Mono (2.10.8) для Ubuntu. Мое приложение скомпилировано с помощью VisualStudio 2012 в ОС Windows (7).

Я пытаюсь сделать несколько почтовых запросов на другие веб-сайты и проанализировать данные. Вот код, который создает запросы (который отлично работает в 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)


person Iwan1993    schedule 23.11.2013    source источник
comment
Mono и .NET не совместимы на 100%. Если вы создадите свою программу для .NET, она не обязательно будет работать в Mono.   -  person Lasse V. Karlsen    schedule 24.11.2013
comment
Да, но в документации mono говорится, что System.Net должен быть реализован полностью. И если нет, то есть ли обходной путь?   -  person Iwan1993    schedule 24.11.2013
comment
Где это сказано?   -  person Lasse V. Karlsen    schedule 24.11.2013
comment
Последнее обновление 604 дня назад. Вы уверены, что это правильная версия кода?   -  person Lasse V. Karlsen    schedule 24.11.2013
comment
В любом случае моно однозначно не на 100% совместимо с .NET. Биты и части могут быть, но ожидать, что ваш код будет работать, в основном просто надеяться на лучшее. Единственное реальное решение здесь — скомпилировать свой код для моно.   -  person Lasse V. Karlsen    schedule 24.11.2013
comment
Могу ли я предварительно скомпилировать для моно в Windows?   -  person Iwan1993    schedule 24.11.2013
comment
Вы должны использовать Mono 3.2.*, так как только эта версия имеет профиль .NET 4.5. Mono 2.* устарел.   -  person Lex Li    schedule 24.11.2013


Ответы (1)


.NET 4.5 не поддерживается в Mono 2.x, обновите до Mono 3.x.

У вас есть руководство: Установка Mono 3.x в Ubuntu/Debian

person knocte    schedule 24.11.2013
comment
опубликовать все NotImplementedException с трассировкой стека - person knocte; 27.11.2013