ServiceStack在monotouch/monodroid上的web服务托管?

3

我目前正在尝试使用Xamarin和monotouch/monodroid在iOS / Android上托管REST webservice。我已经成功地使用HttpListener运行了一个基本的Web服务器,但现在我想使用ServiceStack托管完整的webservice。

monotouch/monodroid的Web托管能力非常有限(HttpListener基本上是唯一的方法),但ServiceStack可以理论上解决这个问题。

似乎有可能做到,因为我找到了一个人做到了:http://www.servicestack.net/mythz_blog/?p=417

问题在于该项目在最新的monotouch版本上不再工作,而且ServiceStack似乎已经在monotouch/monodroid的最新构建中删除了服务器托管功能...

Xamarin有一个ServiceStack的分支(https://github.com/xamarin/ServiceStack),它似乎具有托管功能,但monotouch特定的服务托管构建无法编译,而且该分支似乎已经过时。

有人成功地使ServiceStack在monotouch/monodroid上的托管功能工作吗?或者你有什么办法让它工作吗?

2个回答

3
您可以尝试使用这篇教程来自主托管ServiceStack。
看起来它将在幕后使用HttpListener,但我不知道AppHostHttpListenerBase类是否适用于MonoTouch/Mono for Android。

这正是我想要实现的,问题在于编译一个包含AppHostHttpListenerBase的monotouch/droid兼容的dll。ServiceStack在旧版本中(如我的链接中)曾经拥有它,但现在已经没有了,Xamarin分支也有它,但都不能在最新的monotouch版本上编译。 - sinedied
1
看起来他们在所有项目中都只勾选了“项目选项->编译器->将警告视为错误”。我取消了这些选项,然后只编译了ServiceStack、ServiceStack.Common和ServiceStack.Interfaces,似乎构建得很好。这个类是在这三个项目中的一个吗? - jonathanpeppers
我敢打赌你说的是Xamarin版本?我也做了同样的事情,编译器在ServiceStack.Interfaces编译时崩溃了。无论如何,有趣的类在ServiceStack.dll中编译得很好,但它不是一个monotouch项目(因此即使使用monotouch目标,在monotouch上也无法工作)。这个dll的替代品位于ServiceStack.MonoTouch下,但由于许多错误而无法构建 :( - sinedied
我的构建是在MonoTouch目标下进行的,但我会尝试使用ServiceStack.MonoTouch.sln——我没有看到它。 - jonathanpeppers

2
好的,经过一些研究,允许ServiceStack自助托管的项目已经被放弃了。在(旧的)Xamarin版本中,情况好了一些(https://github.com/xamarin/ServiceStack),并且可以编译它并使其以某种方式工作。
由于我需要与最新的ServiceStack版本保持同步,我想我别无选择,只能使用旧的Xamarin分支作为起点来进行适应。

你在Xamarin应用程序中使用Hosting ServiceStack做了什么吗?GitHub上的旧Xamarin分支不支持Hosting,只能用于客户端。 - WriteEatSleepRepeat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接