我知道可以使用 Mono 在 Linux 上开发和托管 ASP.Net 站点和 Apache ,但我想知道它的效果如何,是否值得麻烦?我更喜欢开源,但对于这个项目,我想要最快、最简单、最可靠的解决方案。
我将要构建的站点将是一个相当基本的 ASP.Net 站点,使用 MySQL .
我想知道其他人是否有在像我这样的情况下使用 Mono 的经验,以及该项目的进展情况。它与使用以 Microsoft 为中心的解决方案相比如何?
我知道Mono仍然有些不完整,但我希望我不需要它缺少的功能。
这个问题可能有点“两极分化”。大多数类似的问题似乎都得到了非常亲微软或亲 Linux 的人的回答。我希望得到一些公正的回应,最好是来自有使用这两者的经验的人。
最佳答案
大约一年半前我从以 MS 为中心的解决方案切换到现在我在基于 Linux/Mono/Apache/MySQL 的虚拟服务器上托管我所有的网站和 Web 项目(我最初使用 nginx 而不是 apache ,但 mono-fastcgi-server 随机导致 thrashing ,所以我选择 apache 作为 web 服务器)。我可以将我对此配置的(主观)体验总结为几点:
可能需要一些时间来适应 Linux 和基于 MS 的环境之间的差异(如果您以前从未使用过 Linux),但我并不后悔这个决定。对我有很大帮助的是为特定技术(例如单声道并行环境、apache 虚拟主机配置、处理某些问题)创建安装和配置过程,这些过程大部分是可重复的并且可以自动化。
您仍然可以使用 Visual Studio 开发您的应用程序,然后将它们部署到 Linux 机器上。如果您正在使用这种方法,那么定期在单声道上测试您的应用是否存在可能的不兼容性是一个好习惯。
我通过 FTP 部署 Web 应用程序,这可能是最简单的方法(也许 WinSCP 更容易,因为您不必设置 FTP 服务器,但这取决于您的偏好)。
到目前为止,我遇到过 2 例 Mono/Apache 内存泄漏导致网站不可用的情况。这可能是由我在旧的单声道安装中使用的 Boehm 垃圾收集器引起的。我在最近版本的 mono 上使用新的 sgen GC 没有遇到类似的问题。
与 MS 产品相比,我最喜欢在 Linux 环境中运行的单声道软件是您在执行管理任务时不必一直点击。 Shell 对我来说是统一的管理界面,可以加快速度(如果你有一些实践的话)。
关于asp.net - 在 Linux 上运行 ASP.Net 与标准的以 Microsoft 为中心的解决方案相比如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4738168/
作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代
是的,我知道最好使用webmock,但我想知道如何在RSpec中模拟此方法:defmethod_to_testurl=URI.parseurireq=Net::HTTP::Post.newurl.pathres=Net::HTTP.start(url.host,url.port)do|http|http.requestreq,foo:1endresend这是RSpec:let(:uri){'http://example.com'}specify'HTTPcall'dohttp=mock:httpNet::HTTP.stub!(:start).and_yieldhttphttp.shou
我目前正在使用以下方法获取页面的源代码:Net::HTTP.get(URI.parse(page.url))我还想获取HTTP状态,而无需发出第二个请求。有没有办法用另一种方法做到这一点?我一直在查看文档,但似乎找不到我要找的东西。 最佳答案 在我看来,除非您需要一些真正的低级访问或控制,否则最好使用Ruby的内置Open::URI模块:require'open-uri'io=open('http://www.example.org/')#=>#body=io.read[0,50]#=>"["200","OK"]io.base_ur
相信很多人在录制视频的时候都会遇到各种各样的问题,比如录制的视频没有声音。屏幕录制为什么没声音?今天小编就和大家分享一下如何录制音画同步视频的具体操作方法。如果你有录制的视频没有声音,你可以试试这个方法。 一、检查是否打开电脑系统声音相信很多小伙伴在录制视频后会发现录制的视频没有声音,屏幕录制为什么没声音?如果当时没有打开音频录制,则录制好的视频是没有声音的。因此,建议在录制前进行检查。屏幕上没有声音,很可能是因为你的电脑系统的声音被禁止了。您只需打开电脑系统的声音,即可录制音频和图画同步视频。操作方法:步骤1:点击电脑屏幕右下侧的“小喇叭”图案,在上方的选项中,选择“声音”。 步骤2:在“声
首先回顾一下拉格朗日定理的内容:函数f(x)是在闭区间[a,b]上连续、开区间(a,b)上可导的函数,那么至少存在一个,使得:通过这个表达式我们可以知道,f(x)是函数的主体,a和b可以看作是主体函数f(x)中所取的两个值。那么可以有, 也就意味着我们可以用来替换 这种替换可以用在求某些多项式差的极限中。方法: 外层函数f(x)是一致的,并且h(x)和g(x)是等价无穷小。此时,利用拉格朗日定理,将原式替换为 ,再进行求解,往往会省去复合函数求极限的很多麻烦。使用要注意:1.要先找到主体函数f(x),即外层函数必须相同。2.f(x)找到后,复合部分是等价无穷小。3.要满足作差的形式。如果是加
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
我很好奇.NET将如何影响Python和Ruby应用程序。用IronPython/IronRuby编写的应用程序是否会非常特定于.NET环境,以至于它们实际上将变得特定于平台?如果他们不使用任何.NET功能,那么IronPython/IronRuby相对于非.NET同类产品的优势是什么? 最佳答案 我不能说任何关于IronRuby的东西,但是大多数Python实现(如IronPython、Jython和PyPy)都试图尽可能忠实于CPython实现。不过,IronPython正在迅速成为这方面的佼佼者之一,并且在PlanetPyth
require'mechanize'agent=Mechanize.newlogin=agent.get('http://www.schoolnet.ch/DE/HomeDE.htm')agent.clicklogin.link_withtext:/Login/然后我得到Mechanize::UnsupportedSchemeError。 最佳答案 Mechanize不支持javascript但您可以将搜索字段添加到表单并为其分配搜索词并使用mechanize提交表单form=page.forms.firstform.add_fie
我正在尝试解析网页,但有时会收到404错误。这是我用来获取网页的代码:result=Net::HTTP::getURI.parse(URI.escape(url))如何测试result是否为404错误代码? 最佳答案 像这样重写你的代码:uri=URI.parse(url)result=Net::HTTP.start(uri.host,uri.port){|http|http.get(uri.path)}putsresult.codeputsresult.body这将打印状态码和正文。