【问题标题】:No more Global.asax, but OWIN Startup.cs不再有 Global.asax,而是 OWIN Startup.cs
【发布时间】:2017-01-26 16:56:52
【问题描述】:

所以有人决定不再需要 global.asax,我们都应该使用 OWIN。这对我来说是新的,到目前为止我发现的所有示例都将使我非常精通在任何地方显示“hello world”。很好,因为它并不完全有用。

我们现有的 REST API 都使用 global.asax 文件。看来我现在需要跨过迁移。下面是我们的 Application_Start() 方法的内容:

protected void Application_Start()
    {

        SD.Tools.OrmProfiler.Interceptor.InterceptorCore.Initialize("UnityWebService");
        log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(String.Format("{0}/{1}", System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath, "log4net.config")));
        UnityConfig.RegisterComponents();
        AutoMapperConfig.Configure();
        GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
        GlobalConfiguration.Configure(WebApiConfig.Register);
        GlobalConfiguration.Configuration.Filters.Add(new ExceptionHandlingAttribute());
        GlobalConfiguration.Configuration.Filters.Add(new ValidateModelStateAttribute());
        GlobalConfiguration.Configuration.Filters.Add(new CheckModelForNullAttribute());
        GlobalConfiguration.Configuration.MessageHandlers.Add(new MessageHandlerMain());
    }

如何转换它以便在 startup.cs 中工作?它只是一个直接的转置:

public void Configuration(IAppBuilder app)
    {

    }

我错过了什么技巧吗?

提前致谢

【问题讨论】:

    标签: rest owin global-asax


    【解决方案1】:

    您可以将这些行中的大部分不加修改地移动到您的Startup 类的Configuration 方法中。应该这样做:

    public void Configuration(IAppBuilder appBuilder)
    {
        var config = new HttpConfiguration();
        WebApiConfig.Register(config);
        config.Filters.Add(new ExceptionHandlingAttribute());
        // move other lines over here
        appBuilder.UseWebApi(config);
    }
    

    【讨论】:

    • 谢谢先生。非常感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 2015-02-11
    • 2015-12-16
    • 2015-10-18
    • 2016-01-10
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多