AppHarbor + OWIN

Я пытаюсь сделать приложение AppHarbor OWIN. Я взял свое работающее автономное приложение OWIN для POC и перенес его на IIS Pipeline (пробуя OwinStartup и appSettings).

Насколько я могу судить, автозагрузка не инициализируется. Но я даже не уверен. Сборка завершается успешно и копирует соответствующую (одну) DLL. Я получал 404 и на / странице стандартную страницу "nginx". Я изменил appSettings так, чтобы он указывал на Автозагрузку вместо (в дополнение к фактически) использования атрибута OwinStartup, и теперь / page - это 403. Это подсказка, но я все еще потерян

Запуск выглядит так:

using Owin;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Http;
using System.IO;
using Microsoft.Owin;
using Microsoft.Owin.Extensions;

[assembly: OwinStartup(typeof(PGO_6.Startup))]

namespace PGO_6
{
    public class Startup
    {
        public void Configuration(IAppBuilder appBuilder)
        {
            appBuilder.Use((context, next) =>
            {
                TextWriter output = context.Get<TextWriter>("host.TraceOutput");
                return next().ContinueWith(result =>
                {
                    output.WriteLine("Scheme {0} : Method {1} : Path {2} : MS {3}",
                        context.Request.Scheme, context.Request.Method, context.Request.Path, getTime());
                });
            });

            appBuilder.Run(async context =>
            {
                await context.Response.WriteAsync(getTime() + " My First OWIN App");
            });

            // Configure Web API
            var config = new HttpConfiguration();

            config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}", 
                new { id = RouteParameter.Optional });

            appBuilder.UseWebApi(config);
        }

        static string getTime()
        {
            return DateTime.Now.Millisecond.ToString();
        }
    }
}

Итак, почти полностью код котельной плиты. Часть {controller} является прямой от моего другого работающего POC. Другой - прямая копия примера MSDN.

Любой совет, как я могу продвинуть это к функционированию? Спасибо!

PS разрабатывая это в среде Xamarin, ориентируясь на.NET 4.5

1 ответ

Решение

ОК, поддержка AppHarbor отличная. Он помог мне обнаружить:

  • targetFramework должен быть установлен в блоке компиляции web.config. Ошибка новичка с моей стороны
  • некоторые файлы.config не копировались во время сборки AppHarbor, потому что я не пометил файлы соответствующими атрибутами сборки / действиями копирования. Еще одна ошибка новичка с моей стороны

Это были основные проблемы. Прекрасно работает сейчас

Другие вопросы по тегам