问题标签 [fastcgi-mono-server]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nginx - 如何将大数据发送到托管在 Nginx+FastCGI 上的 ServiceStack?
我需要将大文件(1GB)流式传输到 ServiceStack 网络服务,该服务将托管在 Debian 的 Nginx+FastCGI 上。
我正在使用IRequiresRequestStream
DTO 来支持流式传输。
我从客户端上传数据HttpWebRequest
:
部署在 IIS 中时一切正常。
但是,当 WS 托管在 NGinx+FastCGI 上时,ServiceStack 会收到格式错误(分块)的数据,如下所述:Binary data corrupted when hosting ServiceStack in Mono + FastCGI指的是这个错误:https ://bugzilla.xamarin.com /show_bug.cgi?id=10001
提供解决方法的拉取请求(https://github.com/mono/mono/pull/752)显然已合并到 Mono 的 master 分支中,但尽管如此,我仍然看到这个问题。我认为它尚未部署在 Mono 的生产版本中。如果我正确理解了拉取请求,它只提供了一种解决方法并且不允许流式传输。
到目前为止,唯一对我有用的解决方法是指定这个:
并且不将数据作为流式发送,而是在发送到 WS 之前将其全部缓冲。对于大文件,这不是一个可行的选择。
我尝试在 nginx.conf 中设置它,但它不会改变行为:
还有其他选项如何将大文件流式传输到 ServiceStack 网络服务?XSP 是否支持分块编码?Apache 上的 mod_mono 是否支持它?自托管控制台应用程序怎么样?对于面向互联网的大型应用程序,这需要足够稳定。
asp.net-mvc - 如何在压力下限制 nginx mono-fastcgi 服务器 cpu 使用率
MVC4 / Mono 3.2.1 应用程序在 Debian 中运行,带有 Nginx 和 mono-fastcgi-4 服务器。它开始为
测试时,按住浏览器 F5 键 30 秒。之后有很长的延迟,浏览器显示页面加载图标。延迟消息后
出现
和 top 命令(下面的输出)显示单声道 fastcgi 服务器永远或很长时间(2 个核心)占用 200% cpu。阻止这种情况的唯一方法是手动杀死 mono fastcgi 服务器并手动重新启动它
如何使 mono fastcgi 立即返回页面而不使用太多 cpu?
如果使用 Apache 和 mod_mono 托管相同的应用程序,则在浏览器中按住并释放 F5 键会立即返回页面,并且在浏览器中释放 F5 后,cpu 使用率会立即变为 0。
更新
通过 nginx 和 ServiceStack 在 fastcgi-mono-server 上进行小负载测试后,在 Bad gateway 502中回答
建议在 nginx 和 fastcgi 服务器中使用相同数量的线程。
我正在使用默认的 nginx 和 mono fastcgi 服务器配置,它们都可能允许 1024 个线程。
- 单声道实际上允许更少的线程。也许这会导致问题,fastcgi 单声道服务器很旧?
- 将 /multiplex 添加到 fastcgi 单声道服务器可以解决这个问题吗?
- 对于上面这个不是很强大的 VPS 服务器,减少线程数是否合理?
- 是否有一些导致失败的单声道设置?
- fastcgi 日志文件中没有写入任何内容,如何诊断?
有关此的其他信息发布在https://stackoverflow.com/questions/20512978/how-to-limit-mono-197-cpu-usage-in-mono-fastcgi-server
nginx - 如何在 init.d 中的其他用户帐户中运行进程
我正在寻找一种方法来自动运行 mono fastcgi 4 服务器作为进程,因为用户 www-data like apache 运行。线
工作正常,但如果从 root 调用,它会以 root 身份运行。
我试过了
如/etc/init.d/monoserve
下面的脚本,但它返回错误
看起来参数传递不正确。如何解决?在 Debian 中为 Nginx 运行 mono fastcgi 服务器的最佳实践是什么?
asp.net-mvc-4 - 如何使用 Mono WebAPI 应用程序实现工作 Web 服务器
Mono 3.2 MVC4 WebAPI 应用程序在 Debian x64 VPS 服务器中运行。Mono 从源代码编译并使用 4.5 子树。应用程序需要 Chrome 或 Safari 浏览器。
多次刷新浏览器窗口后,服务器无法正常工作。我尝试了所有已知的免费可能性:
阿帕奇 + mod_mono
多次按下浏览器刷新按钮后,服务器随机返回某些页面的 500 错误,并且 apache 错误日志包含“无法映射路径”异常。
我把它贴在
并且在
Mono ASP.NET 邮件列表没有任何响应。
服务器中有许多单声道应用程序,可能是 mod_mono 选择了错误的线程,或者单声道中的 webapi 映射实现中存在一些错误。
Nginx + mono-fastcgi-server4.exe
按住 F5 键会导致 mono-fastcgi-server4.exe 中的 CPU 使用率永远达到 200%
我把它贴在
https://stackoverflow.com/questions/20512978/how-to-limit-mono-197-cpu-usage-in-mono-fastcgi-server
并且在
Mono ASP.NET 邮件列表没有任何解决方案。
看起来单声道 fastcgi 服务器中存在错误,或者它与单声道 3.2 不兼容
直接使用xsp4.exe
如果多次刷新浏览器窗口,则会在 Chrome 中导致“服务器不返回数据”。
我把这个贴在
https://code.google.com/p/chromium/issues/detail?id=329311
没有回应。
也许 xsp4 没有正确实现 http 协议。
Havent 尝试过 ServiceStack,因为它不能用于所需的闭源开发。此外,应用程序还使用图像、css、js 文件和 MVC 视图,它们也需要提供服务。
如何为返回正确数据的单声道创建合适的服务器?
c#-4.0 - 未找到安装 mono-fastcgi-server4 文件
我已经在 web 和 stackoverflow 上搜索了如何安装 mono-fastcgi-server4。它应该是单声道发行版或 xsp 的一部分。我已经安装了 mono、monodevelop、xsp、mono-mvc-develop 并从顶层搜索了我的驱动器,但在任何地方都找不到 mono-fastcgi-server*。所有教程和示例都与其他组件一起安装。我错过了什么包裹?我在 Centos 6.4 上。
mono - Nginx、mono-fastcgi、ServiceStack 安装
ServiceStack 网站有 Windows (Nuget) 的构建/安装说明。有很多帖子提到了基于单声道的 ServiceStack,但从来没有任何关于如何在 Centos 上构建的说明。我在 Windows 上下载并构建了 ServiceStack,并试图将文件带到 Centos。到目前为止,这不适用于我与 mono-fastcgi 的集成。我在浏览器中遇到错误:例如“解析器错误消息:找不到类型 ServiceStack.Examples.Host.Web.Global”。这个特定的错误并不是我真正的问题,除非它能让我更进一步地安装有效的 ServiceStack。真正的问题是在 Centos 上安装和构建 ServiceStack 的最佳方式是什么?(让 Nuget 在 Centos 上工作并不是一个解决方案……至少我无法让 Nuget 构建)。
在与 Scott 讨论以下列出的步骤后,nuget.exe 命令行包管理器收到以下错误:
关于使用命令行 nuget 的任何想法?
iis - IIS - 如何指定 FastCGI TCP 传输端口
我正在尝试在需要使用 TCP 作为协议的 Windows 7 / IIS8 上配置 FastCGI 服务器。
在设置 FastCGI 应用程序时有一个使用“TCP 协议”的选项,但是关于它是如何工作的文档确实很少。
http://msdn.microsoft.com/en-us/library/bb448989(v=vs.90).aspx
一个如何:
- 指定要使用的端口
- 找到进程启动时 IIS 想要使用的端口?(当 IIS 生成进程时,似乎没有任何参数)
asp.net - 使用 Mono 的 Ubuntu 上 ASP.NET Web 服务中的 HTTP 请求验证异常
首先,我对 Linux Os 和 Mono 也完全陌生。
我已经采取了以下帖子中的所有步骤,在 Linux Ubuntu 上使用 Mono 运行我的 Web API 服务:
http://piotrwalat.net/running-asp-net-web-api-services-under-linux-and-os-x/
现在我可以在 Ubuntu 上运行我的 Web 服务localhost:5757
,但是当我执行一个方法时,我得到System.Web.HttpRequestValidationException
:
这是我的测试方法:
这是我要测试的输入 XML 消息:
它在带有 Windows 的 IIS 中完美运行。但是我怎样才能让它在 Linux 上与 Mono 一起工作呢?
更新:
.NET 版本是 3.5,我<pages validateRequest="false" />
在 web.config 文件中添加了,但仍然出现相同的错误。
你建议我做什么???
web-services - Web API Service Error - Cross-Origin Request Blocked
My Windows Web API Service is running on Linux (Nginx http server) with FastCGI Mono server.
When my clients try to invoke my web api service's methods, they see the following error message in response:
Cross-Origin Request Blocked: The Same Policy disallows reading the remote resource at http://localhost:5757/Service.asmx/HeartBeat?. This can be fixed by moving the resource to the same domain or enabling CORS.
My Nginx virtual host config file:
I am confused how to overcome this problem???
Because on my localhost I tested all the methods and all of them work pretty well.
How to enable CORS and what steps should I take, if this is the cause? Because I am working with Nginx only for 2 weeks.
UPDATE:
This is my service's address:
http://217.11.176.115:5757/Service.asmx
If you open it with Firefox and invoke the HeartBeat method, you can see the error message with Firebug.
asp.net-mvc-3 - 使用 Nginx 托管的 Web 应用程序对 mono-fastcgi-server4 的第一个浏览器请求出现巨大延迟
我们使用单声道版本 3.10.0(来自 $mono --version)和 Nginx(1.6.2)和 mono-fastcgi-server4 来托管在 Debian jessie linux(ARM - Raspberry Pi)上运行的 ASP.Net MVC3 Web 应用程序)。
基本上我们似乎遇到了与这个问题中描述的相同的问题: Huge delay on first browser-request to Mono XSP hosting web-application
当来自浏览器/网站访问者的第一个请求发出时,mono-fastcgi-server 使用所有 CPU 最多可以得到 120 秒,直到网页显示在 webbrowser 中。这发生在每次启动/重新启动网络服务器之后。
据我所知,如果您在 Windows 服务器上使用 IIS 托管您的网站,这很正常,甚至相同。主要区别在于Windows服务器要快得多......
为了尽量减少启动时间,这是我已经尝试过的:
使用 Visual Studio 中的“发布网站”功能将我的 razor 视图预编译为 dll。到目前为止,这有效,但似乎并没有显着减少启动时间。
我遇到的下一件事是AOTing(提前编译)我在 bin 文件夹中的 dll(请参阅http://www.mono-project.com/docs/advanced/runtime/docs/aot/)我使用了 'mono -- aot file.dll` 来预编译我的程序集。再次没有性能提升。
然后我发现您当然也可以使用以下命令 AOT 您系统上的所有库(可在此处找到:http ://www.mono-project.com/docs/advanced/aot/):
这在可能的覆盆子上花了很长时间,但 - 再次 - 相同的结果。
我做错了什么或遗漏了一些明显的东西吗?
前面提到的问题的作者在他关于延迟的最后评论中说:
它是由生成和编译尚未预编译的剃刀视图引起的。这些文件被编译到 /tmp/... 中,该文件映射到嵌入式设备上的内存,因此在重新启动后会丢失。更糟糕的是,每次重新启动 XSP 网络服务器后,文件都会被编译到 /tmp 的新子目录中。这样每次启动 XSP 时都会重新编译 razor 视图。
我认为无论使用 XSP4、mono-fastcgi-server 以及在使用 Apache 时可能还有 mod-mono,它似乎对我来说都是一样的。(这并不奇怪,因为我认为它们都是基于 XSP 的——但也许我错了......)
现在提到的问题来自 2011 年......有人知道是否有解决方案让网络服务器使用这些预编译文件?
我很感谢任何提示!