如何正确处理ASP.NET MVC中从控制器抛出的异常?该HandleError属性似乎只处理由MVC基础结构抛出的异常,而不是我自己的代码抛出的异常.
使用此web.config
<customErrors mode="On">
<error statusCode="401" redirect="/Errors/Http401" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)
使用以下代码
namespace MvcApplication1.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
// Force a 401 exception for testing
throw new HttpException(401, "Unauthorized");
}
}
}
Run Code Online (Sandbox Code Playgroud)
不会导致我所希望的.相反,我得到通用的ASP.NET错误页面,告诉我修改我的web.config以查看实际的错误信息.但是,如果不是抛出异常而是返回无效的View,我会得到/Shared/Views/Error.aspx页面:
return View("DoesNotExist");
Run Code Online (Sandbox Code Playgroud)
像我上面所做的那样在控制器中抛出异常似乎绕过了所有HandleError功能,那么创建错误页面的正确方法是什么,以及如何在MVC基础架构中发挥良好作用?
有没有一种简单的方法可以使用java将数据返回到JSON中的Web服务客户端?我很喜欢servlets,spring等.
鉴于以下代码,我有一些关于最佳实践的问题:
string connectionString = @"Server=(local)\sqlexpress; Database=master; Integrated Security=true;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlDataAdapter dataAdapter = new SqlDataAdapter("select * from information_schema.columns", connection))
{
await connection.OpenAsync();
DataTable dataTable = new DataTable();
await Task.Run(() => dataAdapter.Fill(dataTable));
return dataTable;
}
}
Run Code Online (Sandbox Code Playgroud)
我已经看到几个示例在Task.Run()调用中包装整个代码块,但我不确定这是否比仅为DataAdapter.Fill()方法调用Task.Run()更好更灵活和特定(仅使用等待异步任务).
在Fill()方法上调用Task.Run()的方法比包装整个代码块更好吗?
在Task.Run()中调用Fill()有任何负面的副作用吗?如果Fill()有错误,我正在考虑丢失调用堆栈和/或异常信息的问题.
有没有更好的方法在ASP.NET中编写它?
有没有一种简单的方法可以使用Rails将数据返回到JSON中的Web服务客户端?
我在VS2017中创建了一个针对.NET Framework 4.6.1的新项目,当我向System.Net.Http添加NuGet包引用时,我收到以下警告及其所有依赖性:
The referenced component 'System.Net.Http' could not be found.
项目(及其解决方案)编译但是当我运行时,我得到一个异常,因为在尝试实例化实例时无法找到程序集HttpClient.
我已经确认它HintPath指向packages文件夹中的正确位置,并且DLL的大小为193 KB.我删除了引用,并试图直接添加对DLL的引用,但没有成功.
我还尝试通过Framework> Assemblies添加引用,但无论我做什么,引用都有一个警告图标,引用的属性如下所示:
我尝试过以下方法:
Update-Package -reinstall适当的参数似乎无论我尝试什么,我都无法获得工作的参考.我还应该尝试其他什么?
我最近为我的新款MacBook下载了Mono 2.我正在试图弄清楚如何用xbuild编译Visual Studio解决方案,xbuild包含在Mono中.有任何想法吗?
json ×2
web-services ×2
.net ×1
ado.net ×1
asp.net-mvc ×1
asynchronous ×1
build ×1
c# ×1
dataadapter ×1
exception ×1
java ×1
macos ×1
mono ×1
nuget ×1
xbuild ×1