Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在WCF中实现JSON-RPC_C#_Wcf_C# 4.0_Json.net_Json Rpc - Fatal编程技术网

C# 在WCF中实现JSON-RPC

C# 在WCF中实现JSON-RPC,c#,wcf,c#-4.0,json.net,json-rpc,C#,Wcf,C# 4.0,Json.net,Json Rpc,我一直在四处寻找,没有找到解决办法。我想用WCF实现一个JSON-RPC服务器。我发现了这一点,但它不使用WCF,我知道如何集成它。有人能给我一个如何把所有东西组合起来的提示吗 谢谢 编辑:我已经发布了我的源代码 服务器端的一个非常基本的实现现在正在运行,至少在HTTP GET请求中是这样。我现在正试图为它实现一个WCF客户端,但我又一次被卡住了:(我将在上面发布一个单独的问题。我已经写了一些博客,详细说明了如何做到这一点-请看第一个(有其他链接) 基本上,您需要创建一个能够理解协议的传输通道

我一直在四处寻找,没有找到解决办法。我想用WCF实现一个JSON-RPC服务器。我发现了这一点,但它不使用WCF,我知道如何集成它。有人能给我一个如何把所有东西组合起来的提示吗

谢谢

编辑:我已经发布了我的源代码


服务器端的一个非常基本的实现现在正在运行,至少在HTTP GET请求中是这样。我现在正试图为它实现一个WCF客户端,但我又一次被卡住了:(我将在上面发布一个单独的问题。

我已经写了一些博客,详细说明了如何做到这一点-请看第一个(有其他链接)

基本上,您需要创建一个能够理解协议的传输通道。在该传输中,您需要将输入/输出转换为WCF
Message
对象(WCF堆栈的基本块)。并且您需要将消息传递到堆栈的其余部分。您还需要编写操作选择器,以将传入的RPC消息映射到将调用的服务中的操作


另一种选择是在HTTP之上编写JSON-RPC;在这种情况下,您应该使用一组消息格式化程序(分解参数)代替传输通道,操作选择器,可能还有一个用于请求/回复关联的消息检查器。

我已经写了一些博客,详细介绍了如何做到这一点-请参阅上的第一个博客(它有到其他博客的链接)

基本上,您需要创建一个能够理解协议的传输通道。在该传输中,您需要将输入/输出转换为WCF
Message
对象(WCF堆栈的基本块)。并且您需要将消息传递到堆栈的其余部分。您还需要编写操作选择器,以将传入的RPC消息映射到将调用的服务中的操作


另一种选择是在HTTP之上编写JSON-RPC;在这种情况下,您应该使用一组消息格式化程序(分解参数)代替传输通道,操作选择器,可能还有一个用于请求/回复关联的消息检查器。

谢谢您的回答Carlos..我想这对我来说并不是一个简单的任务。只是关于您的文章的一个小问题。我发现它主要涉及客户端,在第3部分的末尾有一个“让我们转到服务器端”但是我真的不知道从哪里开始。附在第3部分的源代码可以作为一个好的起点吗?提前谢谢,服务器端部分在。嗨,carlos,我已经开始在HTTP堆栈上开发我自己的操作选择器。我已经使用端点行为将其应用到我的服务中。现在我想我错过了开始调试的一步我的SelectOperation方法。我正在尝试从web浏览器调用该方法,如下所示:{“jsonrpc”:“2.0”,“id”:1,“方法”:“Playlist.GetPlaylists”}但是这个方法没有被调用。我已经发布了我的代码。嗨,卡洛斯,我正在尝试完成客户端部分,你能帮我回答这个问题吗?提前谢谢。谢谢你的回答。卡洛斯。我想这对我来说并不是一件小事。只是一个关于你文章的小问题。我看到它主要涉及客户端,在文章的结尾第三部分是“让我们转到服务器端”但是我真的不知道从哪里开始。附在第3部分的源代码可以作为一个好的起点吗?提前谢谢,服务器端部分在。嗨,carlos,我已经开始在HTTP堆栈上开发我自己的操作选择器。我已经使用端点行为将其应用到我的服务中。现在我想我错过了开始调试的一步我的SelectOperation方法。我正试图从以下web浏览器调用该方法:{“jsonrpc”:“2.0”,“id”:1,“method”:“Playlist.GetPlaylists”}但该方法未被调用..我已经发布了我的代码嗨Carlos,我正在尝试完成客户端部分,您能在这里帮助我解决这个问题吗?提前谢谢。