我HttpWebRequest在我的应用程序中使用,它检查多个线程中的一些URI.我得到了多种类型的超时异常.
他们的细节如下:
System.Net.WebException:操作已在System.Net.HttpWebRequest.GetResponse()处于超时时间......
和
System.Net.WebException:远程服务器返回错误:(504)Gateway Timeout.在System.Net.HttpWebRequest.GetResponse()at ....
这两者之间有什么不同.
我的功能如下:
public bool CheckUri(Uri m_url)
{
try
{
HttpWebRequest request = HttpWebRequest.Create(m_url) as HttpWebRequest;
request.UserAgent = "MyUserAgent";
//For: The underlying connection was closed: An unexpected error occurred on a receive.
request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version10;
request.Method = "HEAD"; //Get only the header information
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
int statusCode = (int)response.StatusCode;
if (statusCode >= 100 && statusCode < 400) //Good requests
{
string …Run Code Online (Sandbox Code Playgroud) 我有情况,我必须在Web API方法中接收请求,排队这些请求,然后将批量发送到数据库(Solr实例).
我不确定如何维护来自多个来源的一批请求.现在我将每个请求数据以json格式写入磁盘上的文件,稍后我将有一个Windows服务,浏览文件夹读取所有文件,更新数据库并删除这些文件.
这是我在Web API中所做的事情
public void Post(LogEntry value)
{
value.EventID = Guid.NewGuid();
value.ServerTime = DateTime.UtcNow;
string json = JsonConvert.SerializeObject(value);
using(StreamWriter sw = new StreamWriter(value.EventID.ToString()))
{
sw.Write(json);
}
}
Run Code Online (Sandbox Code Playgroud)
(这EventID是GUID)
这个过程看起来不正确,必须有一种维护请求队列的方法,但我不确定如何在多个请求期间维护队列.
我这样做的原因是,在solr实例中批量插入比通过SolrNet插入单个记录更快.我期望在Web API上每秒至少获得100个请求.我想创建一批1000个请求并每10秒更新一次solr实例.请不要认为我需要代码,只需知道我应采用什么策略来维护请求/状态队列.
我有一个具有以下结构的表
ID ActivityTime Status
19 2013-08-23 14:52 1
19 2013-08-23 14:50 1
19 2013-08-23 14:45 2
19 2013-08-23 14:35 2
19 2013-08-23 14:32 1
19 2013-08-23 14:30 1
19 2013-08-23 14:25 2
19 2013-08-23 14:22 2
53 2013-08-23 14:59 1
53 2013-08-23 14:56 1
53 2013-08-23 14:57 1
53 2013-08-23 14:52 2
53 2013-08-23 14:50 2
53 2013-08-23 14:49 2
53 2013-08-23 14:18 2
53 2013-08-23 14:30 1
Run Code Online (Sandbox Code Playgroud)
我想计算每个ID与状态2的总时间差.例如,ID 19保持在状态2,从14:35到14:50(15分钟),然后是14:22到14:30(8分钟).因此状态2中的总ID 19为23分钟.(在这两种情况下,我都考虑了状态2到状态1的最短时间) 问题是 我如何仅在下一行中它们不同的状态之间包含差异.
例如,我将排除表中状态为1的第一条记录,然后选择第二行.状态2的情况也是如此.我会选择最小时间,计算它们的差异,然后将它们添加到每个通道的多组状态.
我尝试过使用CURSOR,但似乎无法使其正常工作.我也非常有信心,在获得所有数据然后循环之后,我可以在C#中实现这一点.但我只是想知道是否有一种直接的方式来获取没有循环的信息.我还创建了一个SQL 数据 …
我尝试了以下代码:
DateTime dateTime = DateTime.ParseExact("01/02/2013", //string date
"01/02/2013", // string format
CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
我知道格式不正确.但为什么不是抛出异常而是返回当前日期dateTime = {24/09/2014 12:00:00 AM}.
我知道我的约会的有效格式应该是MM/dd/yyyy,但为什么它没有抛出异常.我也尝试过DateTime.TryParseExact,它返回当前日期而不是default(DateTime).这实际上是在阅读这个问题.
我的问题是这个解析是如何工作的?
我试图迫使Solr在白色空格,逗号:和;.上标记文档 .与SQL Server全文搜索类似的东西.如果我使用text_general字段然后它标记其他字符也像('/','\','-')我尝试使用
<tokenizer class="solr.PatternTokenizerFactory" pattern="\s*,:;\s*"/>
Run Code Online (Sandbox Code Playgroud)
但它没有标记它.这是我的FieldType样子:
<fieldType name="text_sqlserver" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.PatternTokenizerFactory" pattern="\s*,:;\s*"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.PatternTokenizerFactory" pattern="\s*,:;\s*"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)
有什么我想念的吗?我也必须搜索不区分大小写的比较.
我有一个字符串
String a= "04/23/2014 12:00 AM"
DateTime.ParseExact(a, "MM/dd/yyyy HH:mm tt", System.Globalization.CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
这显示错误
System.FormatException:String未被识别为有效的DateTime.在System.DateTimeParse.ParseExact
我试图定义一个LINQ响应这个问题,我有一个List<List<string>>,我需要比较内部列表的第一行,并根据匹配返回该列表:
List<List<string>> mainList = new List<List<string>>();
List<string>lines = new List<string>();
lines.Add("one");
lines.Add("two");
lines.Add("three");
mainList.Add(lines);
lines=new List<string>();
lines.Add("bus");
lines.Add("clock");
lines.Add("chicken");
mainList.Add(lines);
Run Code Online (Sandbox Code Playgroud)
如何使用LINQ返回包含的整个列表"bus"?
我想知道是否可以使用像"IN"这样的关键字来测试C#中if语句中的条件?
原始代码:
if (fAuth.ShowDialog(this.DialogParent) == DialogResult.Cancel
|| fAuth.ShowDialog(this.DialogParent) == DialogResult.Abort
|| fAuth.ShowDialog(this.DialogParent) == DialogResult.None
|| fAuth.ShowDialog(this.DialogParent) == DialogResult.No)
return;
Run Code Online (Sandbox Code Playgroud)
我问怎么做这样的事情:
if (fAuth.ShowDialog(this.DialogParent) IN (DialogResult.Cancel,DialogResult.Abort,DialogResult.None,DialogResult.No)
return;
Run Code Online (Sandbox Code Playgroud)
什么是正确的语法?