Nginx,mono-fastcgi,ServiceStack安装

时间:2014-02-21 06:09:47

标签: mono servicestack fastcgi-mono-server

ServiceStack网站有windows(Nuget)的构建/安装说明。有很多帖子提到基于单声道的ServiceStack,但从来没有任何关于如何构建Centos的说明。我在Windows上下载并构建了ServiceStack,并尝试将文件传输到Centos。到目前为止,这与我与mono-fastcgi的集成无效。我在浏览器中收到错误:“解析器错误消息:找不到类型ServiceStack.Examples.Host.Web.Global”。这个特殊错误并不是我的问题,除非它可以让我进一步朝着可行的ServiceStack安装。真正的问题是安装ServiceStack并在Centos上构建它的最佳方法是什么? (让Nuget在Centos上工作不是一个解决方案..至少我不能让Nuget建立起来。)

在与Scott讨论下面列出的步骤之后,nuget.exe命令行包管理器会出现以下错误:

[root@buffer1 nuget]# /usr/local/bin/mono nuget.exe install ServiceStack -Verbosity detailed -ConfigFile /root/nuget/NuGet.config 
WARNING: Invalid certificate received from server. Error code: 0xffffffff800b010a
System.InvalidOperationException: Unable to find package 'ServiceStack'.
  at NuGet.PackageRepositoryHelper.ResolvePackage (IPackageRepository sourceRepository, IPackageRepository localRepository, IPackageConstraintProvider constraintProvider, System.String packageId, NuGet.SemanticVersion version, Boolean allowPrereleaseVersions) [0x00000] in <filename unknown>:0 
  at NuGet.PackageRepositoryHelper.ResolvePackage (IPackageRepository sourceRepository, IPackageRepository localRepository, System.String packageId, NuGet.SemanticVersion version, Boolean allowPrereleaseVersions) [0x00000] in <filename unknown>:0 
  at NuGet.PackageManager.InstallPackage (System.String packageId, NuGet.SemanticVersion version, Boolean ignoreDependencies, Boolean allowPrereleaseVersions) [0x00000] in <filename unknown>:0 
  at NuGet.Commands.InstallCommand.InstallPackage (IFileSystem fileSystem, System.String packageId, NuGet.SemanticVersion version) [0x00000] in <filename unknown>:0 
  at NuGet.Commands.InstallCommand.ExecuteCommand () [0x00000] in <filename unknown>:0 
  at NuGet.Commands.Command.Execute () [0x00000] in <filename unknown>:0 
  at NuGet.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 
[root@buffer1 nuget]# 

有关使用命令行nuget的任何想法吗?

1 个答案:

答案 0 :(得分:2)

你提到你已经设法让Mono在CentOS上构建。

不要从源构建ServiceStack:

虽然有可能,但这是不必要的。您可以从Windows复制现有的ServiceStack dll;你不需要特殊的构建,也不必在CentOS上自己构建它们。

无构建说明...使用NuGet:

没有关于在CentOS上构建ServiceStack的具体说明,因为根本没有从源代码构建它的说明。建议的方法是从NuGet获取ServiceStack dll。但是如果您使用CentOS机器作为开发机器,那么您只想这样做。在这种情况下,你可以download the NuGet command line tool。然后只需运行:

  

mono nuget.exe安装ServiceStack

然后在你的开发IDE(我推荐monodevelop)中引用NuGet下载的文件。关于如何在CentOS上运行Mono和MonoDevelop的See here for instructions

无效的证书警告:

如果尚未将Mozilla受信任的根证书提供程序添加到单一信任提供程序存储区,则会发生这种情况。您只需要执行此操作一次,mono将开始信任来自标准可信来源的SSL证书:

  

mozroots --import --sync

See here有关Mono SSL安全性的更多信息。

部署:

这只是将您发布的项目复制到CentOS并遵循这些配置instructions from the documentation的情况。除了使用apt-get安装nginx之外,您需要使用yum。但是nginx和fastcgi的配置是一样的。