Jayrock:未导出 Web 方法

Posted

技术标签:

【中文标题】Jayrock:未导出 Web 方法【英文标题】:Jayrock: web methods not exported 【发布时间】:2011-11-16 15:41:25 【问题描述】:

我试图找出我在使用简单的 Jayrock JSON-RPC 服务时做错了什么。

基本上,我正在为 .NET WCF Web 服务编写 JSON 代理,以便 iPhone 可以使用它。 SOAP 服务接口正在工作,所以我只是在我的 Jayrock 处理程序中实现一个服务实例并调用相应的方法。

不幸的是,虽然我的测试项目没有任何问题,但当我使用实际应用程序执行此操作时,我标记为 JsonRpcMethod 的 Jayrock Web 方法都没有导出。我看到的只是 3 种默认方法。

我断开了所有其他方法的连接,以防万一有一些干扰,我仍然看不到任何东西。关于我可能做错的任何建议?

这是我的通用处理程序代码:

using System;
using System.Web;
using Jayrock.Json;
using Jayrock.JsonRpc;
using Jayrock.JsonRpc.Web;
using WimotiDTO.DataContract;

namespace WimotiWS

    /// <summary>
    ///  Summary description for JSONEndpoint
    /// This class implement a JSon proxy for the Wimoti web service
    /// </summary>
    public class JSONEndpoint : JsonRpcHandler
    
        [JsonRpcMethod("Test")]
        string Test()
        
            return "Yeeha!";
        
    

这是页面:

<%@ WebHandler Language="C#" CodeBehind="JSONEndpoint.ashx.cs" Class="WimotiWS.JSONEndpoint"%>

最后调用方法列表方法返回:

["system.listMethods","system.version","system.about"]

【问题讨论】:

【参考方案1】:

应该使用class属性:

[JsonRpcService("Handler")]
public class Handler : JsonRpcHandler, IRequiresSessionState

【讨论】:

以上是关于Jayrock:未导出 Web 方法的主要内容,如果未能解决你的问题,请参考以下文章

使用 Jayrock 返回对象

使用 swift 将导出的方法值作为未定义来反应本机本机模块?

如果我有符号,如何在 DLL 中找到参数签名并调用未导出的方法?

为啥 Jayrock(.NET JSON-RPC 框架)不喜欢我的请求?

在 .NET 中使用 Jayrock 不正确地形成 JSON 字符串

jqGrid - 如何配置 jsonreader(与 Jayrock 一起使用)?