C# 如何使用Topshelf托管ServiceStack?
我正在尝试在Topshelf中自托管ServiceStack,但不断出现错误: 只允许以“/”结尾的Uri前缀 为Windows服务使用ServiceStack模板可以工作,但不能使用Topshelf 我的Apphost.cs如下所示: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
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();
});
}