servicestack,nancy,self-hosting,C#,Mono,servicestack,Nancy,Self Hosting" /> servicestack,nancy,self-hosting,C#,Mono,servicestack,Nancy,Self Hosting" />

C# 自托管在Mono下运行的简单NancyFX HelloWorld应用程序的延迟问题

C# 自托管在Mono下运行的简单NancyFX HelloWorld应用程序的延迟问题,c#,mono,servicestack,nancy,self-hosting,C#,Mono,servicestack,Nancy,Self Hosting,背景 我通过在不同条件下运行一个简单的HelloWorld示例来测试NancyFX框架 public class IndexModule : NancyModule { public IndexModule() { Get["/"] = _ => "Hello World!"; } } 这个例子在Windows和Linux上都运行良好,问题是Mono的响应时间。在Windows下,HTTP响应采用近似值。3-4ms,而Linux(Mono)下的相同代码总是需要200m

背景

我通过在不同条件下运行一个简单的HelloWorld示例来测试NancyFX框架

public class IndexModule : NancyModule
{
  public IndexModule()
  {
    Get["/"] = _ => "Hello World!";
  }
}
这个例子在Windows和Linux上都运行良好,问题是Mono的响应时间。在Windows下,HTTP响应采用近似值。3-4ms,而Linux(Mono)下的相同代码总是需要200ms+。经过一些额外的测试(并切换到ServiceStack AppHost)后,问题仍然存在,因此我猜测这与Mono有关。有什么想法吗

HTTP响应(CentOS 6.5、Mono 3.10)

测试结果

OS                  Runtime          Response time    Location
Windows 7           .NET 4.5.1       3ms              Local
CentOS 6.5          Mono 3.10        200ms            Local
Ubuntu 12.04 LTS    Mono 2.10.8.1    295ms            Remote
其他


奇怪的是,如果在自托管应用程序的顶部放置反向代理,延迟问题就会消失

以下是使用的nginx proxy\u pass配置:

# /etc/nginx/virtual.d/nancydemo.conf

server {
  listen 80;
  server_name nancydemo.local;
  root /media/sf_dev/nancydemo/bin/Debug;

  location / {
    proxy_pass http://127.0.0.1:1234;
  }
}

我不认为这会有任何区别,但请看线程。这里的Sleep(infinite)@Jon没有任何区别。Nancy self host并不是真的要自己使用的。它实际上只用于测试和低使用率。除此之外,它还应该有一个web服务器来处理apache或nginx之类的连接。