2013-04-11 80 views
3

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

monotouch/monodroid具有非常有限的虚拟主机功能(HttpListener基本上是唯一的方法),但ServiceStack理论上可以与此相适应。

这似乎是可能的,因为我发现有人谁做的:http://www.servicestack.net/mythz_blog/?p=417

的问题是,项目不上的最后一个MonoTouch的版本管用了,ServiceStack似乎MonoTouch的已删除服务器托管capabilites/monodroid最新版本...

Xamarin有一个ServiceStack(https://github.com/xamarin/ServiceStack)似乎具有托管功能的分支,但特定于服务托管构建的MonoTouch不能编译,并且分支似乎已过时。

有没有人成功地使承载能力ServiceStack上的MonoTouch/MonoDroid的工作吗?或者你有关于如何使其工作的想法?

回答

2

好吧,经过一番研究,允许ServiceStack自托管的项目已经被删除。它与(旧)Xamarin版本(https://github.com/xamarin/ServiceStack)有更好的运气,并且可以编译它并使其以某种方式工作。

因为我需要的是最新版本的ServiceStack同步,我想我没有其他选择,而不是推出自己的改编,使用旧Xamarin分支为出发点。

+0

你有没有设法在Xamarin应用程序中托管ServiceStack?GitHub上旧的Xamarin分支不支持托管它仅用于客户端 – 2015-01-23 14:29:45

3

你可以尝试this tutorial为自托管ServiceStack。

看起来它会在引擎盖下使用HttpListener,但我不知道AppHostHttpListenerBase类是否会针对Android编译为MonoTouch/Mono。

+0

这正是我试图实现,问题是编译的MonoTouch /机器人兼容DLL包含'AppHostHttpListenerBase'。 ServiceStack曾经在老版本(如我的链接)中使用它,但现在不再是了,Xamarin fork也拥有它,但它们都没有在最新的monotouch版本上编译。 – sinedied 2013-04-11 14:47:11

+1

看起来他们只是在项目中检查了“项目选项 - >编译器 - >将警告视为错误”。我取消选中这些,然后只编译ServiceStack,ServiceStack.Common和ServiceStack.Interfaces,它似乎构建得很好。这个课程是在这三个项目中的一个吗? – jonathanpeppers 2013-04-11 15:24:43

+0

我敢打赌你说的是Xamarin版本?我做了同样的事情,编译器在ServiceStack.Interfaces编译时崩溃。无论如何,有趣的类在ServiceStack.dll中编译得很好,但它不是一个monotouch项目(即使使用monotouch目标,它也不能用于monotouch)。 该dll的替代品位于ServiceStack.MonoTouch下,由于很多错误而无法生成:( – sinedied 2013-04-12 07:32:41