3

ServiceStack について知ったばかりですが、これまで読んだコメントからは、WCF からの切り替えが非常に有望に思えます。

この投稿は、.NET および Mono ServiceStack と ASP.Net Web APIで動作すると述べています。

Windows サーバーでホストされている ServiceStack Web サービスをクライアント (Mac OSX の Mono など) で使用できるかどうかを知りたいです。

ServiceStack のシリアライズ/デシリアライズは、あるサーバー プラットフォームから別のクライアント プラットフォームに機能しますか?

理論的には、CLR をターゲットにしているため、これは可能なはずです。

ただし、実際には、Mono の CLR の実装に大きく依存します。

4

2 に答える 2

2

ServiceStack のクライアントとサーバーの dll は、完全な Mono Server でそのまま動作します。たとえば、 servicestack.netのすべてのライブ デモは、常に Ubuntu/Mono/Nginx でホストされています (つまり、4 年以上)。

同じクライアント ライブラリは、フル バージョンの Mono がインストールされている場所でも機能するため、MonoMac でも機能するはずです。

ただし、Xamarin の iOS および Android モバイル プラットフォームでは、プラットフォームごとにカスタム ビルドが必要です。以前はこれらのモバイル プラットフォームをサポートしていませんでしたが、ServiceStack v4 のリリース後にカスタム ビルドの提供を開始します。iOS の NoJIT 技術的制限がないため、最初は Android を使用し、その後 iOS の制限に対する適切な回避策が見つかった後に iOS を使用します。

于 2013-11-05T08:09:03.923 に答える
1

私たちの経験では、単一サービス スタック サービス ホストを wcf soap1.1 クライアントで使用すると問題が発生しました。

特に、サービス ホストのベースとなっている mono のバージョンでは、.net wcf 4.5 クライアントが生成したメッセージを逆シリアル化する際に問題がありました。

メモリから、xml 内の名前空間を処理できませんでした。サービスを構築するために、C# データ コントラクト クラスを提供しました。もう 1 つ非互換性がありましたが、それが何だったのか思い出せません。サービス スタック内の規則に関係していたのだと思います。もともとデータ コントラクトには、メッセージ オブジェクトの末尾に Response という単語がありました。サービス スタックには、問題が発生した非同期応答に関する規約があります。最終的に契約の名前を変更しました。

彼らは、問題のある xml 属性を取り除くために、翻訳レイヤーを配置することになりました。

逆に、つまり、iis がホストする wcf 基本的な http soap 1.1 サービスを使用したモノ クライアントの実装は、はるかにうまく機能するように見えました。この方法での実装に問題はありません。

mono の将来のバージョンでは、逆シリアル化の問題が修正されたと思います。

お役に立てれば。

于 2013-11-05T08:31:22.737 に答える