在 WCF 中实现 JSON-RPC

2023-12-15

我一直在四处寻找,但没有找到解决方案。我想用 WCF 实现一个 JSON-RPC 服务器。我找到了这个http://jsonrpc2.codeplex.com/但它不使用 WCF,我知道如何集成它。有人可以给我一个关于如何将所有东西组合在一起的提示吗?

Thanks

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

服务器端的一个非常基本的实现现在正在工作,至少可以使用 HTTP GET 请求。我现在正在尝试为其实现一个 WCF 客户端,但我再次陷入困境:( 我将就此发布一个单独的问题。


我写了一些博客,这些博客准确地展示了如何做到这一点 - 请参阅第一个博客(其中有指向其他博客的链接)http://blogs.msdn.com/b/carlosfigueira/archive/2011/12/08/wcf-extensibility-transport-channels-request-channels-part-1.aspx.

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 WCF 中实现 JSON-RPC 的相关文章

  • 使用 mono/nunit-console/4 在 Mac OS X 控制台上运行测试

    我安装了 Max OS X 10 11 1 上面装有 Xamarin 我编写了简单的测试类 只是为了测试在 Mac OS X 和 Ubuntu 上运行 Nunit 测试 该类实际上有一个返回字符串的方法 using System names
  • 如何在 DataColumn.Expression 中使用 IF/ELSE 或 CASE?

    我有一个包含 1 列的表 状态 我想添加另一列名为 Action 的列 其值如下 如果 Status Yes 则 Action Go 否则 Action Stop 我使用以下代码添加到 操作 列中 但它不起作用 myDataTable Co
  • 在 C/C++ 中获得正模数的最快方法

    通常在我的内部循环中 我需要以 环绕 方式索引数组 因此 例如 如果数组大小为 100 并且我的代码要求元素 2 则应该给它元素 98 高级语言 例如 Python 可以简单地使用my array index array size 但由于某
  • 有没有快速创建集合的方法?

    目前我正在创建一个像这样的新集 std set a s s insert a1 s insert a2 s insert a3 s insert a10 有没有办法创建s在一行 int myints 10 20 30 40 50 std s
  • 我如何理解这个 C 类型声明?

    double bar int double double double double 在查看讲座幻灯片时 我发现了留给学生的练习 用简单的英语来说 什么是类型bar在这个 C 声明中 Please帮助我解决这个问题 我什至不知道从哪里开始
  • FileStream 构造函数和默认缓冲区大小

    我们有一个使用 NET 4 用 C 编写的日志记录类 我想添加一个构造函数参数 该参数可以选择设置文件选项 WriteThrough http msdn microsoft com en us library system io fileo
  • 更改 Qt OpenGL 窗口示例以使用 OpenGL 3.3

    我正在尝试更改 Qt OpenGL 示例以使用更现代的 opengl 版本 330 似乎合适 所以我做了 在 main cpp 上设置版本和配置文件 设置着色器版本 更改着色器以使用统一 它现在构建没有任何错误 但我只看到一个空白窗口 我错
  • EF Core 通过完全替换断开集合导航属性的更新

    使用 EF Core 5 0 我有一个 SPA 页面 可以加载Group实体及其集合Employee来自 API 的实体 var groupToUpdate await context Groups Include g gt g Emplo
  • 如何在 SqlDataReader.Read() 期间从死锁异常中恢复

    我的 NET 应用程序的事件日志显示 它在从 Sql Server 读取数据时偶尔会出现死锁 这种情况通常非常罕见 因为我们已经优化了查询以避免死锁 但有时仍然会发生 过去 我们在调用ExecuteReader函数在我们的SqlComman
  • GCC 和 ld 找不到导出的符号...但它们在那里

    我有一个 C 库和一个 C 应用程序 尝试使用从该库导出的函数和类 该库构建良好 应用程序可以编译 但无法链接 我得到的错误遵循以下形式 app source file cpp text 0x2fdb 对 lib namespace Get
  • 动态生成的控件 ID 返回为 NULL

    我可以在 Page PreInit 函数中创建动态控件 如何检索控件及其 ID 我的 C 代码用于创建动态控件之一 var btn new WebForms Button btn Text btn ID Addmore btn Click
  • Visual Studio Code:如何配置 includePath 以获得更好的 IntelliSense 结果

    我是使用 Visual Studio Code 的完全初学者 我不知道我在做什么 我已经四处搜索 也许还不够 但我找不到像我这样的人如何配置的简单解释c cpp properties json每当我单击带有绿色波浪线下划线的行旁边的黄色灯泡
  • ASP.NET MailMessage.BodyEncoding 和 MailMessage.SubjectEncoding 默认值

    很简单的问题 但我在 MSDN 上找不到答案 查找 ASP NET 将用于的默认值 MailMessage BodyEncoding and MailMessage SubjectEncoding 如果你不在代码中设置它们 Thanks F
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • cout 和字符串连接

    我刚刚复习了我的 C 我尝试这样做 include
  • 从 F# 调用 Newtonsoft.Json 出现意外结果

    我没有从该 F 代码中获得预期结果 我希望 t 包含调用 JsonSchema Parse json 的结果 但它是空的 我究竟做错了什么 open Newtonsoft Json open Newtonsoft Json Schema l
  • 使用taskkill停止Windows服务

    我需要帮助来使用 C 终止 Windows 服务 现在要终止该服务 请使用以下选项 从命令 sc queryex ServiceName 发现后PID服务的 taskkill pid 1234 exemple f 为了便于阅读 但如果您明白
  • 每个数据库多个/单个 *.edmx 文件

    我有一个通过 ADO net 数据服务与数据库交互的项目 数据库很大 近 150 个具有依赖关系的表 该项目几年前开始 当时使用的是数据集 现在我们正在转向实体模型关系 由于我们添加了更多需要使用的表 该模型正在不断增长 这是管理这一切的正
  • C++ Streambuf 方法可以抛出异常吗?

    我正在尝试找到一种方法来获取读取或写入流的字符数 即使存在错误并且读 写结束时间较短 该方法也是可靠的 我正在做这样的事情 return stream rdbuf gt sputn buffer buffer size 但如果streamb
  • 将 char[][] 转换为 char** 会导致段错误吗?

    好吧 我的 C 有点生疏了 但我想我应该用 C 来做我的下一个 小 项目 这样我就可以对其进行抛光 并且我已经有不到 20 行的段错误了 这是我的完整代码 define ROWS 4 define COLS 4 char main map

随机推荐

  • Material Design Lite - 文本字段中的底线与彩色线有轻微间隙

    我正在尝试让 Material Design Lite 文本字段正常工作 但遇到一个问题 底部彩色线与灰色起始线之间有轻微的 3 4 px 间隙 我插入页面的任何 MDL 文本字段示例都会得到相同的结果 什么可能在本地触发该问题 我还在前端
  • Django(使用 TokenAuthentication):“non_field_errors”:“无法使用提供的凭据登录?

    我正在使用 httpie 来测试我的自定义身份验证 http POST http 127 0 0 1 8000 api token auth username username1 password Password123 我确实使用创建了一
  • 从 gchar 缓冲区发送图像到 ftp 服务器 (libcurl)

    我正在开发一个用 C 编程的 Linux 应用程序 它处理 gdk pixbuf 图像 然后通过 ftp libcurl 将它们发送到远程服务器 图像保存到 gchar 缓冲区中gdk pixbuf save to buffer 问题是我不
  • Django 更新模型

    我有一个模型如下 class UserPrivacy models Model user models ForeignKey User profile models SmallIntegerField default 1 choices P
  • 使用 hooks 进行两次 React 渲染

    为什么我的组件渲染两次 export default function App console log asd const count setCount useState 0 return div div
  • 签出 origin/ 时如何知道我在 git 上的哪个分支

    我们有一个实际上可以做到的脚本git fetch git checkout origin
  • ShellExecute:动词“runas”不适用于路径中带有空格的批处理文件

    我正在使用 ShellExecuteW 启动批处理文件 代码看起来有点像这样 ShellExecuteW GetDesktopWindow wide verb c str wide filename c str wide parameter
  • 在C代码中表示EOF?

    换行符表示为 n 在C代码中 是否有与文件结束符 EOF 等效的字符 EOF 不是一个字符 在大多数现代操作系统中 它只是到达流末尾时应用于文件流的一个条件 之所以会出现混乱 是因为用户可能signalEOF 用于通过键入特殊字符进行控制台
  • 取消全局 CBT 挂钩后从所有进程卸载 DLL

    当加载 DLL 的系统范围挂钩被卸载时 如何从所有进程中正确卸载 DLL From MSDN 您可以释放全局钩子 程序通过使用 取消挂钩WindowsHookEx 但这个功能 不释放包含以下内容的 DLL 钩子程序 这是因为全球 钩子过程被
  • IndexError:使用 for 循环“弹出索引超出范围”

    我该如何解决这个问题IndexError 我尝试使用while循环 但没有任何改变 这是我的代码 它应该检查两个列表的对象的长度 la lb 并从中删除字符串la如果字符串短于lb字符串 反之亦然 另外 如果两个字符串的长度相同 则必须删除
  • 如何防止MSIL运行时注入? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 正如这里所见程序化 MSIL 注入或这里http www codeproject com Articles 463508 NET CLR Injection Modify IL
  • 如何在R闪亮字符串中插入新行

    在闪亮的 我有以下内容 output sequenceText lt renderText showSequence showSequence lt reactive selectedSeqs lt as numeric input seq
  • jQuery“可见”并不适用于所有浏览器,但适用于 Firefox

    我做了一个非常简单的小提琴here 并且可以在不同的浏览器中查看 它仅适用于 Firefox 换句话说 似乎 select tag id option visible 在其他浏览器中不起作用 怎么了 这是一个 jQuery 错误吗 代码是
  • 具有刚性变量的数组

    好吧 我正在做一个问题 其中我使用的函数有一个刚性变量 我想到了使用数组来解决这个问题 所以我想到使用与我创建的函数具有相同刚性变量的数组 但我不知道如何使用刚性变量创建数组 我尝试了以下操作但没有效果 rearrange Int gt a
  • Exec 命令未按预期工作

    我正在尝试从 PHP 脚本启动 CLI 命令 特别是我想使用这个命令convert a png a tif将图像转换为 tiff 当我从 CLI 启动此命令时 它会按预期工作 但如果我使用以下代码从 PHP 脚本启动 它不会在我的文件夹中创
  • Javascript 全局变量没有更新

    我正在制作这个网站 我想从另一个函数更新全局变量 全局变量i初始化为 0 我创建了 2 个函数 第一个用于更新全局变量并通过警报显示新值 第二个函数仅警报更新后的全局变量的新值 现在的问题是 当我调用第一个函数时 它会提醒新的更新值 但是当
  • Wagtail 单元测试:添加子页面将它们转换为基本类型

    尝试为 Wagtail 创建一些单元测试并遇到以下问题 gt gt root FrontPage add root instance FrontPageFactory build gt gt root
  • 使用 LINQ 进行多重排序[重复]

    这个问题在这里已经有答案了 我从一个基本类开始 我想使用 LINQ 在列表中操作它 如下所示 public class FooBar public virtual int Id get set public virtual string F
  • Delphi 7 - 如何使用输入框

    我正在编写一个程序 您必须在输入框中输入密码才能访问该程序的最小功能 但是 如果您单击输入框中的 取消 我的程序会出现错误消息 所以我想知道是否有人知道我如何才能做到这一点 因为通过 Messagedlg 我知道你使用 IF 但是我怎样才能
  • 在 WCF 中实现 JSON-RPC

    我一直在四处寻找 但没有找到解决方案 我想用 WCF 实现一个 JSON RPC 服务器 我找到了这个http jsonrpc2 codeplex com 但它不使用 WCF 我知道如何集成它 有人可以给我一个关于如何将所有东西组合在一起的