servicestack,topshelf,C#,servicestack,Topshelf" /> servicestack,topshelf,C#,servicestack,Topshelf" />

C# 如何使用Topshelf托管ServiceStack?

C# 如何使用Topshelf托管ServiceStack?,c#,servicestack,topshelf,C#,servicestack,Topshelf,我正在尝试在Topshelf中自托管ServiceStack,但不断出现错误: 只允许以“/”结尾的Uri前缀 为Windows服务使用ServiceStack模板可以工作,但不能使用Topshelf 我的Apphost.cs如下所示: public class AppHost : AppHostHttpListenerBase { public AppHost(): base("My test", typeof(MyServices).Assembly) { } p

我正在尝试在Topshelf中自托管ServiceStack,但不断出现错误:

只允许以“/”结尾的Uri前缀

为Windows服务使用ServiceStack模板可以工作,但不能使用Topshelf

我的Apphost.cs如下所示:

public class AppHost : AppHostHttpListenerBase  
{  
    public AppHost(): base("My test", typeof(MyServices).Assembly) { }  
    public override void Configure(Container container) { }  
}  
然后像这样使用它:(感谢)

publicstaticvoidmain(字符串[]args)
{
var appSettings=新的appSettings();
AppConfig config=新的AppConfig(appSettings);
HostFactory.Run(x=>{
x、 UseLog4Net();
x、 服务(s=>{
s、 ConstructUsing(name=>newapphost());
s、 开始时(ah=>{ah.Init();ah.Start(config.hostname);});
s、 停止时(ah=>ah.Stop());
});
x、 RunAsLocalSystem();
x、 SetDescription(“我的应用程序描述”(+config.appURL+));
x、 SetDisplayName(“我的应用程序名”);
x、 SetServiceName(“MyApp”);
x、 StartAutomatically();
});
}

有什么建议吗?

您收到的错误消息是哪一行?config.appURL的值是什么?url的值是“”,行“s.WhenStarted”和“apphost.Start()”给出了错误。URI前缀字符串由方案(http或https)、主机、可选端口和可选路径组成。完整前缀字符串的示例为“”。前缀必须以正斜杠(“/”)结尾。确保config.hostname以正斜杠(“/”)结尾。希望这有帮助。谢谢你的回答,但是你可以看到我的url“localhost:8088/”的末尾有一个“/”。对不起。我的错。我在周末又看了一遍,发现它是一个丢失的“/”。配置文件从未以正确的方式读取,默认值缺少正斜杠。您收到的错误消息是哪一行?config.appURL的值是什么?url的值是“”,行“s.WhenStarted”和“apphost.Start()”给出了错误。URI前缀字符串由方案(http或https)、主机、可选端口和可选路径组成。完整前缀字符串的示例为“”。前缀必须以正斜杠(“/”)结尾。确保config.hostname以正斜杠(“/”)结尾。希望这有帮助。谢谢你的回答,但是你可以看到我的url“localhost:8088/”的末尾有一个“/”。对不起。我的错。我在周末又看了一遍,发现它是一个丢失的“/”。配置文件从未以正确的方式读取,默认值缺少正斜杠。
public static void Main(string[] args)
{
    var appSettings = new AppSettings();
    AppConfig config = new AppConfig(appSettings);

    HostFactory.Run(x => {
        x.UseLog4Net();
        x.Service<AppHost>(s => {
            s.ConstructUsing(name => new AppHost());
            s.WhenStarted(ah => { ah.Init(); ah.Start(config.hostname); });
            s.WhenStopped(ah => ah.Stop());
        });

        x.RunAsLocalSystem();
        x.SetDescription("My App Description (" + config.appURL + ")");
        x.SetDisplayName("My App Name");
        x.SetServiceName("MyApp");
        x.StartAutomatically();
    });
}