使用 mono 在 pi 上托管 asp.net owin 网页导致主机错误

using mono to host a asp.net owin webpage on the pi results in bad host

当我尝试将 owin asp.net 网站移植到 pi 时,(raspberry pi 模型 b)我最终得到了一个显示错误页面的网站:

Bad Request (Invalid host)



在圆周率上,我 运行 raspbian 气喘吁吁。我安装了单声道(版本 3.2.8)。 对于一个简单的控制台应用程序,mono 可以工作。

对于 Owin 网站,我在 visual studio 2015 年制作了一个控制台项目。
我向这个控制台应用程序添加了 nuget 包:

  • Microsoft.Owin
  • Microsoft.Owin.Diagnostics
  • Microsoft.Owin.Host.HttpListner
  • Microsoft.Owin.Hosting
  • 之后我添加了一个 Owin 启动 class。在此 class 中,我添加了几行代码来显示当前 os":

    public void Configuration(IAppBuilder app)
    {
        app.UseWelcomePage(new Microsoft.Owin.Diagnostics.WelcomePageOptions()
        {
            Path = new PathString("/welcome")
        });
    
        app.Run(context =>
        {
            context.Response.ContentType = "text/plain";
    
            string output = string.Format(
                "I'm running on {0} nFrom assembly {1}",
                Environment.OSVersion,
                System.Reflection.Assembly.GetEntryAssembly().FullName
                );
    
            return context.Response.WriteAsync(output);
    
        });
    }
    

    现在我只需要在程序class中指定项目的基础url,id在主函数

    中完成
        string baseUrl = "http://localhost:5000";
        using (WebApp.Start<Startup>(baseUrl))
        {
            Console.WriteLine("Press Enter to quit.");
            Console.ReadKey();
    
        }
    

    使用此代码,我的项目在启动时会提供一个带有文本

    的控制台视图

    Press Enter to quit.

    当我浏览到

    http://localhost:5000

    该网页给出了以下输出:

    I'm running on Microsoft Windows NT 6.2.9200.0 nFrom assembly ConsoleApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

    然而,当我将我所有的 dll 和 exe 复制到我的 pi 并执行命令时

    Mono ConsoleApplication1.exe

    pi给出了一行Press Enter to quit。但是当我浏览到端口号为 500 的 pi 的 ip 时,在我的例子中

    http://192.168.7.137:5000/

    网页显示Bad Request (Invalid host)

    尝试替换:

    http://localhost:5000 
    

    http://*:5000
    

    问题出在 rtf_leg 指示我从 pi 访问网站时本地主机不可用的方向。

    我只需要将基数 url 更改为圆周率的精确 url。就我而言 http://192.168.7.137:5000.

    这样当 url 被访问并且显示的结果是:

    时 pi 知道该怎么做

    I'm running on Unix 3.18.7.0 nFrom assembly ConsoleApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

    :D