如果服务未启动,Grapevine.RESTClient 会引发有关 cookie 的异常
Posted
技术标签:
【中文标题】如果服务未启动,Grapevine.RESTClient 会引发有关 cookie 的异常【英文标题】:Grapevine.RESTClient throws exception about cookies if service is not up 【发布时间】:2015-11-09 19:37:15 【问题描述】:所以我使用 Grapevine.RESTClient 来管理我的 REST 接口的客户端。我正在使用它在 LocalSystem 中运行的服务和用户在同一台机器上运行的进程之间进行通信。
我的问题是,当服务未运行时,我的客户端会收到异常消息“错误:值不能为空”。参数名称:cookies'
我正在尝试在客户端上创建一些逻辑,该逻辑应该理解并接受有时服务不可用,例如服务自动更新时。
或者我应该接受异常的消息有点奇怪?
RESTClient client;
client = new RESTClient(baseUrl);
RESTRequest request = new RESTRequest(resource);
request.Method = Grapevine.HttpMethod.GET;
request.ContentType = Grapevine.ContentType.JSON;
request.Timeout = 30000;
RESTResponse response = client.Execute(request);
上面会抛出 System.ArgumentNullException,其中 e.Message = "Value cannot be null.\r\nParameter name: cookies"
嗯...查看 github 上的 Grapevine 代码,即使响应对象是从 GetResponse 调用的 catch 块中的 e.response 创建的,该代码似乎也会尝试将 cookie 集合添加到 this.Cookies 中。它可能有也可能没有 cookie 集合。 this.Cookies.Add(response.Cookies) 周围应该有一个空块测试吧?
https://github.com/scottoffen/Grapevine/blob/master/Grapevine/Client/RESTClient.cs
无法按照葡萄藤开发者的建议创建葡萄藤标签。积分不够
【问题讨论】:
代码示例会很有用,从这个描述很难看出你在做什么。 如果您了解 Grapevine,应该很容易获得灵感。我在帖子中添加了一些代码以使其清楚。而且我还查看了 Grapevine 的实现,以了解发生了什么。 我希望你发现 v4.0 在这方面更容易使用。在接下来的一个月里,网站上的文档应该会被彻底清除掉,但如果你以前用过 Grapevine,那应该很难弄明白。 【参考方案1】:我也遇到了同样的问题。不幸的是,错误消息具有误导性。对我来说,解决方法是在 App.config 文件中添加一个默认代理。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.net>
<defaultProxy useDefaultCredentials="true" />
</system.net>
</configuration>
【讨论】:
如果有Grapevine默认应该做的事情,在项目页面打开一个问题,我会看一下。谢谢!以上是关于如果服务未启动,Grapevine.RESTClient 会引发有关 cookie 的异常的主要内容,如果未能解决你的问题,请参考以下文章
sh (未测试)如果没有控制台访问权限(如drac,ilo等),则销毁服务器,并且无法启动实时系统
启动SQL 2005服务 中的 SQL Server(MSSQLSERVER)是报错:请求失败,或未及时响应。