发布 ASP.NET MVC 应用程序时未找到扩展方法
Extension method not found when publishing ASP.NET MVC app
在 ASP.NET MVC 应用程序 (.NET 4.7) 中,我在 HttpResponseMessage
上使用扩展方法。此方法是在 .NET Standard 2.0 项目中创建的。在调试和使用 IIS Express 时,它工作得很好。
但是发布到服务器时,returns "method not found" 错误。在服务器 (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);
}
}
}
}
}
提前致谢!
在 web.config 中尝试此操作或使用 Nuget 包
重新安装 'System.Net.Http'
<configuration>
<system.web>
<compilation>
<assemblies>
<add assembly="System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</assemblies>
</compilation>
</system.web>
</configuration>
在 ASP.NET MVC 应用程序 (.NET 4.7) 中,我在 HttpResponseMessage
上使用扩展方法。此方法是在 .NET Standard 2.0 项目中创建的。在调试和使用 IIS Express 时,它工作得很好。
但是发布到服务器时,returns "method not found" 错误。在服务器 (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);
}
}
}
}
}
提前致谢!
在 web.config 中尝试此操作或使用 Nuget 包
重新安装 'System.Net.Http'<configuration>
<system.web>
<compilation>
<assemblies>
<add assembly="System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</assemblies>
</compilation>
</system.web>
</configuration>