问题标签 [webhttpbinding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wcf - 流式 webHttpBinding 未流式传输
我需要创建 WCF REST 服务来上传大文件。我将端点设置为流式 webHttpBinding,但它没有流式传输。
服务示例:
网络配置:
客户端代码:
方法 UploadFile 的代码只有在 requestStream.Close() 被调用后才会被调用。为什么?
wcf - Asp.net 会话似乎不适用于 WCF WebHttpBinding
我们正在做一个 WCF REST json 服务 (WebHttpBinding)。由于纯 WCF 会话不适用于这种绑定,因此我们使用的是 asp.net 会话。所以我们设置:
在我们的 web.config 中,并且:
在我们的服务实施之上。我们有几种服务方式,例如:
然后我们在每个方法中测试HttpContext的sessionId。
问题是:它总是在变化。如果我在我的网络浏览器中调用OpenSession?userName='toto',然后再调用 GetSomething?somethingId=1234,会话 ID 将会改变。
wcf 似乎没有很好地处理 cookie。如果我在提琴手中调用 OpenSession 方法,则在 http 标头中,服务没有返回“Set-Cookie”。
jquery - 使用 json.net 将 JSON 返回到 JScript 的最佳方法
我正在使用 WCF 返回一个 JSON,webHttpBinding
以便可以将 JQuery 用于某些网格。今天,我正在查询数据库,并得到一个回复,并使用 Linq,用我需要的字段DataTable
填充一个,然后我使用它序列化它,以便我可以将它作为字符串返回给客户端。下面是实现的片段:List<DTO>
SerializeObject
在接口方面,以下是配置:
返回的是一个需要解析的 JSON 字符串,使用 parseJSON
这是返回 JScript 客户端使用的 JSON 结果的最佳/正确方法吗?有没有办法返回字符串以外的东西,并避免解析?
编辑
在客户端,我使用的是 MVC3,而不是 ASP.NET Web 窗体。Tks
c# - 使用 WebHttpBinding 通过 HTTP 从 SQL 传输表格数据的绝对最快方法
使用 WCF 端点通过 HTTP 传输 SQL 表格数据的最快方法是什么?
现在我正在使用 ESQL 查询实体框架,然后将 DataTable 结果序列化为一个字节 [],然后将其发送过来,然后在另一端反序列化,这似乎很慢。现在,15000 多行的序列化数据的大小约为 4000 字节。我还尝试了 OData 服务,但这也很慢。
与 JSON 相比,我认为它是最快的 - 一个仅包含 1048 个 SQL 行的 JSON 文件大约有 200000 个字节。数据大小与通过 HTTP 传输的速度之间是否存在直接关联?(似乎很直观,但我并不积极)。
最快的格式是什么?我正在考虑使用 SQLDataReader 到 JSON 并将 JSON 发送过来,我认为它应该表现良好,但我不确定。这仅用于数据同步目的。
谢谢。
编辑 做了一些更多的跟踪,看起来我的一些初始测量是错误的。请参阅下面的相应方法(以毫秒为单位)。
2011 年 7 月 11 日星期一下午 6:42:23: :函数“反序列化”持续时间。已用时间:481 毫秒
2011 年 7 月 11 日星期一下午 6:42:23 : : 函数“HttpRequest”持续时间。已用时间:4776 毫秒
2011 年 7 月 11 日星期一下午 6:42:22::DataTable 长度(字节)= 13047247 字节
上面引用的 DataTable 包含约 7000 行,看起来很陡峭,对吧?
c# - 从 AJAX 服务返回大型 JSON 文件 - WCF
我有一个返回 JSON 的基于 AJAX 的 WebGet 方法。它不适用于几千行的 JSON 结果(如果我只取 100 行左右,它可以工作)。我注意到浏览器只是停止并且没有任何反应,没有任何信息显示 Firebug 控制台:
这是我对 WCF 的服务器端配置:
这是我正在应用的 webHttpBinding 配置:
这是最终的行为:
在我看来,一切都已用尽,它应该可以工作,我可能会错过什么?
wcf - 从 WCF 服务访问 HTTP 标头
我需要访问要从 WCF 服务返回给客户端的 HTTP 响应标头。访问 HTTPContext 很容易(通过 HttpContext.Current.Response),但是当 StatusCode 已经设置时(例如,如果状态为 500),最后执行的事件/扩展/行为是什么?
编辑:消息检查器在这里似乎不是一个好的解决方案,因为在它们运行时,状态代码尚未设置。(至少在我的审判中是这样的)
wcf - WCF 找不到 netTcpBinding
我正在尝试创建一个可通过 webHttpBinding 和 netTcpBinding 访问的 WCF 服务。我已经成功地让 webHttpBinding 可以通过 Java 客户端访问,现在我正在努力让 netTcpBinding 正常工作。
我已经设置了这样的配置;
在同一个解决方案中,我有一个希望连接到 netTcpBinding 的测试应用程序,我右键单击“服务引用”并选择“添加服务引用...”。当我点击“发现”时,它虽然说找到了服务;
下载“http://localhost:8732/Design_Time_Addresses/MR_Jukebox_Service”时出错。请求失败,HTTP 状态为 404:未找到。元数据包含无法解析的引用:“http://localhost:8732/Design_Time_Addresses/MR_Jukebox_Service”。在http://localhost:8732/Design_Time_Addresses/MR_Jukebox_Service上没有可以接受消息的端点侦听。这通常是由不正确的地址或 SOAP 操作引起的。有关更多详细信息,请参阅 InnerException(如果存在)。远程服务器返回错误:(404) Not Found。如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。
但我也无法看到 netTcpBinding 以便我创建对它的服务引用。
我想知道是否有人能看到我做错了什么,因为它可能相当简单,但由于我缺乏 WCF 经验,所以没有注意到。
感谢您提前提供任何帮助。
wcf - 托管在 Windows 服务中的 WCF 单例中的计时器(通过 webHttpBinding)意外死亡
我有一个托管在 Windows 服务中的 WCF 服务(在本地系统下运行)。我在里面运行一个 System.Timer。初始化 Timer的操作o1是通过 webHttpBinding 的 http 端点声明的。我为 System.ServiceModel 启用了跟踪,并从 .svcLog 文件中检查了操作 o1 的侦听持续时间。它表明,在运行大约 20 小时后,http 端点处的侦听刚刚停止。
我认为这是因为没有传入消息到达该端点。这里的问题是监听停止,我的计时器(在那个特定的操作o1中初始化)也停止了!
有没有推荐的方法来保持监听器,因此计时器,长时间保持?我们可以定期 ping o1 操作以将其保存在内存中吗?
另外,我在操作 o1 中初始化的计时器变量是一个实例变量,即使侦听器关闭,这个变量是否也应该在内存中(WCF 是单例)?
非常感谢。
代码摘录-
编辑:从 System.Timers 命名空间更改为 System.Threading 命名空间并增加定时间隔为我修复了它。计时器变量不再消失。
c# - 使用 WebHttpBinding 为 WCF 服务定义“app.config”
我有一个 WCF 服务,它允许在不使用 MessageContract 的情况下上传文件。
我可以在 Stream 对象旁边使用另一个参数,因为它是 UriTemplate 的一部分。由于该服务作为托管 Windows 服务运行,因此我必须手动启动 ServiceHost。
有了所有这些,服务启动并正常工作。但是我想将上面的一些内容移到 app.config 文件中。为此,我注释掉了的第二行OnStart
并将第一行替换为FileServiceHost = new ServiceHost(typeof(FileService))
. 然后我将该信息添加到 app.config ...
突然服务无法启动。FileServiceHost.Open
它在该方法上抛出此异常OnStart
:“对于将操作 UploadFile 中的请求作为流,该操作必须有一个类型为 Stream 的参数。”
我在 app.config 中定义服务的方式一定有问题,因为当我从那里删除它时,一切正常。我在这里做错了什么?
erlang - 使用会话 PID 和 JID 提取 SID
我正在尝试找到一种使用 PID 和 JID 提取 bosh 会话(ejabberd)的 SID 的方法,以便我可以在其中使用它ejabberd_sm:unset_presence
,我到处搜索但找不到方法。
基本上,我已经使用 Ejabberd 和 Strophe 构建了一个聊天系统,我想要实现的是当用户按下一个页面上的脱机按钮时,与该 JID 关联的所有会话都需要脱机,我已经通过使用提取了 PID,ejabberd_sm:get_session_pid
但可以'找不到提取 SID 的方法。我也尝试过SID ! Disconnect
,但这会完全断开我不想要的用户。
如果有人做过这种工作,请帮助我,也欢迎其他实现此类工作的想法。
谢谢