例如,在一个全新的ASP.NET MVC 5应用程序中,使用MVC w /个人帐户模板,如果我删除Global.asax.cs该类并将其配置代码移动到Startup.cs Configuration()方法如下,有什么缺点?
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
ConfigureAuth(app);
}
}
Run Code Online (Sandbox Code Playgroud)
对我来说,好处是,当将ASP.NET 4应用程序升级到ASP.NET 5并使用现在必须在Startup.cs类中配置的部分时,我不会在两个看起来相关的不同类中进行依赖注入和其他配置启动和配置.
我使用Owin Self-hosting和WebApi编写了简单的服务器:
namespace OwinSelfHostingTest
{
using System.Threading;
using System.Web.Http;
using Microsoft.Owin.Hosting;
using Owin;
public class Startup
{
public void Configuration(IAppBuilder builder)
{
var config = new HttpConfiguration();
config.Routes.MapHttpRoute(
"Default",
"{controller}/{id}",
new { id = RouteParameter.Optional }
);
builder.UseWebApi(config);
}
}
public class Server
{
private ManualResetEvent resetEvent = new ManualResetEvent(false);
private Thread thread;
private const string ADDRESS = "http://localhost:9000/";
public void Start()
{
this.thread = new Thread(() =>
{
using (var host = WebApp.Start<Startup>(ADDRESS))
{
resetEvent.WaitOne(Timeout.Infinite, true);
}
});
thread.Start(); …Run Code Online (Sandbox Code Playgroud) 根据我们的政策,我们不再允许写入事件日志,因此我从写入事件日志中删除了所有事件日志代码,这是可行的,但是即使有以下情况,我仍会从错误中随机获取ASP.NET 4.0警告我的Application_Error中的代码来处理所有错误。
有什么方法可以完全禁用事件日志记录,可能是通过更改web.config或IIS设置来禁用它?
也注意到很多错误..不仅仅是我的HTTPHandler
EventLog记录的示例:
场次编码:3005
事件消息:发生未处理的异常。
活动时间:2011/9/8上午10:26:04
活动时间(UTC):2011/9/8下午2:26:04
事件ID:6b56761296d24e1aa01038ce125be044
事件顺序:97
事件发生:1
事件详细代码:0
应用信息:
应用域:/ LM / W3SVC / 1 / ROOT / -2-129599642336131368
信任等级:完整
应用程序虚拟路径:/
申请路径:
机器名称:
处理信息:
进程ID:6396
进程名称:w3wp.exe
帐户名称:IIS APPPOOL \ MyAppPool
异常信息:
异常类型:System.Exception
异常消息:STACKTRACE