예제 #1
0
파일: Global.asax.cs 프로젝트: izevaka/kudu
        private static HttpServiceHostFactory GetFactory()
        {
            var factory = new HttpServiceHostFactory();

            // REVIEW: Set to max to accomodate large file uploads in initial scm setup.
            factory.Configuration.MaxBufferSize          = Int32.MaxValue;
            factory.Configuration.MaxReceivedMessageSize = Int32.MaxValue;
            factory.Configuration.EnableHelpPage         = true;
            factory.Configuration.EnableTestClient       = true;
            factory.Configuration.TransferMode           = TransferMode.Streamed;

            factory.Configuration.Formatters.Clear();
            factory.Configuration.Formatters.Add(new JsonValueMediaTypeFormatter());
            factory.Configuration.Formatters.Add(new JsonMediaTypeFormatter());

#if DEBUG
            factory.Configuration.IncludeExceptionDetail = true;
#endif
            // Set IoC methods
            factory.Configuration.CreateInstance  = CreateInstance;
            factory.Configuration.ReleaseInstance = ReleaseInstance;

            factory.Configuration.ErrorHandlers = (handlers, service, op) =>
            {
                handlers.Add(KernelContainer.Kernel.Get <TraceErrorHandler>());
            };

            // Add the authorization handler on specific services method.
            var existingRequestHandlerFactory = factory.Configuration.RequestHandlers;
            factory.Configuration.RequestHandlers = (c, e, od) =>
            {
                if (existingRequestHandlerFactory != null)
                {
                    existingRequestHandlerFactory(c, e, od);
                }

                // Enable authentication based on the configuration setting
                if (AppSettings.AuthenticationEnabled)
                {
                    c.Insert(0, KernelContainer.Kernel.Get <BasicAuthorizeHandler>());
                }
            };

            return(factory);
        }
예제 #2
0
파일: Global.asax.cs 프로젝트: izevaka/kudu
        private static ServiceRoute MapServiceRoute <T>(RouteCollection routes, string url, HttpServiceHostFactory factory)
        {
            var route = new ServiceRoute(url, factory, typeof(T));

            routes.Add(route);
            return(route);
        }