Метод публикации не найден при публикации приложения ASP.NET MVC - PullRequest
1 голос
/ 23 апреля 2019

В приложении ASP.NET MVC (.NET 4.7) я использую метод расширения на HttpResponseMessage. Этот метод создан в проекте .NET Standard 2.0. При отладке и использовании IIS Express все работает просто отлично.

Но при публикации на сервере возвращается ошибка «метод не найден». На сервере (Windows Server 2008) установлены все необходимые платформы.

Чтобы ошибка стала понятной, когда я использовал try / catch в методе, где я вызвал метод расширения.

Как и в разработке, я ожидаю, что она работает на сервере. Я скучаю по каким-либо другим платформам .NET? Или кто-нибудь еще как возможное решение?

HttpResponseMessage response = client.GetAsync(UserManAPI).Result;
if (response.IsSuccessStatusCode)
{
    apiResponse = response.Content.ReadAsStringAsync().Result;
}
else
    response.ThrowReynaersException();


public static void ThrowReynaersException(this HttpResponseMessage response)
{
        if (response.StatusCode == HttpStatusCode.OK)
        {
            using (var dataStream = 
                    response.Content.ReadAsStreamAsync().Result)
            {
                 if (dataStream != null)
                 {
                      var jsonResponse = JsonValue.Load(dataStream);
                      if (jsonResponse != null)
                      {
                           var rex = 
               JsonConvert.DeserializeObject<ReynaersException(jsonResponse,
                            new ReynaersExceptionConverter());
                           if (rex != null) throw rex;
                           var ex = JsonConvert.DeserializeObject<Exception>(jsonResponse, new ExceptionConverter());
                           if (ex != null) throw ex.ToReynaersException(); 
                           throw new 
                        ReynaersException(ErrorResourcesKeys.DefaultMessage);
                    }
                }
            }
        }
    }

Заранее спасибо!

1 Ответ

2 голосов
/ 23 апреля 2019

Попробуйте это в web.config или переустановите 'System.Net.Http' с помощью пакета Nuget

<configuration>
    <system.web>
         <compilation>
             <assemblies>
                <add assembly="System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
             </assemblies>
          </compilation>
    </system.web>
</configuration>
...