根据 ServiceStack 网站,使用 Mono 在 Linux 上启动和运行 ServiceStack 应该很容易。我已经在系统(Ubuntu 12.10)上安装了 nginx、mono 3.0 和 fastcgi。我已经使用本教程来运行 Nginx 和 fastcgi。在 MonoDevelop 中,我右键单击该项目,然后是 Tools -> Deploy to web。这会生成我要部署的文件。然后我将 dll 复制到 Ubuntu 上的 /var/www/project_folder 中。接下来我启动了 Nginx 和 fastcgi。我的 web.config 文件如下所示:
<?xml version="1.0"?>
<configuration>
<system.web>
<customErrors mode="Off"/>
<httpHandlers>
<add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" />
</httpHandlers>
<compilation>
<assemblies>
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</assemblies>
</compilation>
</system.web>
<!-- Required for IIS 7.0 (and above?) -->
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<add path="*" name="ServiceStack.Factory" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" />
</handlers>
</system.webServer>
</configuration>
我还没有将 XSP 添加到服务器。当我转到服务器上的网页(远程地址)时,我收到一条错误消息,告诉我它找不到 ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory。web.config 文件与包含此 ServiceStackHttpHandlerFactory 的 dll 位于同一文件夹中。
任何想法是什么原因造成的?