Mono AppHarbor&x2B;奥温

Mono AppHarbor&x2B;奥温,mono,appharbor,owin,Mono,Appharbor,Owin,我正在尝试制作一个应用程序。我将运行正常的POC单机版OWIN应用程序迁移到IIS管道(同时尝试OwinStartup和appSettings) 据我所知,启动没有初始化。但是,我甚至不太确定。生成成功,并复制相关的(一个)DLL。我得到了404的和/页上的股票标准“nginx”页。我修改了appSettings以指向Startup,而不是使用OwinStartup属性,现在/page是403。这是个线索,但我还是迷路了 启动过程如下所示: using Owin; using System; u

我正在尝试制作一个应用程序。我将运行正常的POC单机版OWIN应用程序迁移到IIS管道(同时尝试OwinStartup和appSettings)

据我所知,启动没有初始化。但是,我甚至不太确定。生成成功,并复制相关的(一个)DLL。我得到了404的和/页上的股票标准“nginx”页。我修改了appSettings以指向Startup,而不是使用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();
        }
    }
}
使用Owin;
使用制度;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
使用System.Web.Http;
使用System.IO;
使用Microsoft.Owin;
使用Microsoft.Owin.Extensions;
[组件:OwinStartup(类型(PGO_6.启动))]
名称空间PGO_6
{
公营创业
{
公共无效配置(IAppBuilder appBuilder)
{
appBuilder.Use((上下文,下一步)=>
{
TextWriter输出=context.Get(“host.TraceOutput”);
return next().ContinueWith(结果=>
{
WriteLine(“方案{0}:方法{1}:路径{2}:MS{3}”,
context.Request.Scheme、context.Request.Method、context.Request.Path、getTime();
});
});
appBuilder.Run(异步上下文=>
{
wait context.Response.WriteAsync(getTime()+“我的第一个OWIN应用”);
});
//配置Web API
var config=新的HttpConfiguration();
config.Routes.MapHttpRoute(“DefaultApi”,“api/{controller}/{id}”,
新的{id=RouteParameter.Optional});
appBuilder.UseWebApi(配置);
}
静态字符串getTime()
{
return DateTime.Now.millis秒.ToString();
}
}
}
所以,几乎完全是锅炉板代码。{controller}部分直接来自我的另一个正在运行的POC。另一个是MSDN示例的直接副本

有什么建议可以帮助我实现这一目标吗?谢谢大家!


p、 在Xamarin环境下开发,目标是.NET4.5。好的,AppHarbor支持非常好。他帮助我发现:

  • 必须在web.config编译块中设置targetFramework。我犯了一个新手错误
  • 一些.config文件在AppHarbor构建期间没有被复制,因为我忽略了用正确的构建操作/复制属性标记文件。我又犯了一个新手错误
这些是主要问题。现在效果很好