ServiceStack.UseCases自托管失败

时间:2014-09-26 00:35:28

标签: c# asp.net asp.net-mvc mono servicestack

我正在尝试使用github ServiceStack.UseCases / ImageResizer项目,并使其自托管。我认为这很容易,所以我引用了这个:https://github.com/ServiceStack/ServiceStack/wiki/Self-hosting但AppSelfHostBase在项目中是未定义的。然后我尝试了AppHostHttpListenerBase,这让我至少可以设置自己的主持人:

public class AppHost : AppHostHttpListenerBase  
{
    public AppHost() : base("Image Resizer", typeof(AppHost).Assembly) {}
    public override void Configure(Container container) {}
}

public class Global : System.Web.HttpApplication
{
    protected void Application_Start(object sender, EventArgs e)
    {
        AppHost appHost = new AppHost();
        appHost.Init();
        appHost.Start("http://*:1301/");
    }
}

然后我将项目转移到带有mono的CentOS盒子。在monodevelop中,我能够构建和运行,但它在运行时失败了。它似乎仍然认为它是一个Mvc或Asp.Net项目。

除了这次尝试之外,我还有一个正在运行的自托管ServiceStack项目,但不是这个ImageResizer,所有试图让现有项目包含新项目的尝试都失败了。

我还尝试将作为工作自托管项目一部分的代码包含在新代码中,但后来符号未定义。像“ServiceStackHost”这样的基本符号。如果我开始尝试使用Nuget并执行更多“Install-Package”,我可以解决此符号问题,但只是导致以前解析的其他符号不再起作用。我真的不完全了解Nuget。任何有关前进方向的想法都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

ServiceStackHostAppSelfHostBase ServiceStack v4 中添加的新类。

您可以在 ServiceStack v3 中使用AppHostHttpListenerBase这是一个自托管类。您正在查看v4文档,以下是docs for ServiceStack v3所在的Self-Hosting

https://github.com/ServiceStackV3/ServiceStackV3/wiki/Self-hosting

自托管应用通常是在控制台应用中创建的 - 您的示例是尝试在 ASP.NET Web应用中运行自托管应用。如果要在ASP.NET应用程序中运行ServiceStack,则应继承AppHostBase,否则,如果要运行自托管应用程序,请创建新的控制台应用程序并继承自AppHostHttpListenerBase 1}}。