小编use*_*965的帖子

操作之间的差异有超时和(504)网关超时

HttpWebRequest在我的应用程序中使用,它检查多个线程中的一些URI.我得到了多种类型的超时异常.

  • 操作已超时
  • 远程服务器返回错误:(504)网关超时.

他们的细节如下:

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)

.net c# system.net.webexception

15
推荐指数
2
解决办法
3万
查看次数

如何在Web API中维护请求的状态或队列

我有情况,我必须在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实例.请不要认为我需要代码,只需知道我应采用什么策略来维护请求/状态队列.

c# asp.net solr solrnet asp.net-web-api

10
推荐指数
2
解决办法
2万
查看次数

获取记录组之间的时差

我有一个具有以下结构的表

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 数据 …

sql sql-server sql-server-2008

5
推荐指数
1
解决办法
3719
查看次数

DateTime.ParseExact返回当前日期

我尝试了以下代码:

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).这实际上是在阅读这个问题.

我的问题是这个解析是如何工作的?

.net c# datetime

4
推荐指数
2
解决办法
902
查看次数

Solr to Tokenize on white space,逗号和句点

我试图迫使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)

有什么我想念的吗?我也必须搜索不区分大小写的比较.

solr solrnet solr4

2
推荐指数
1
解决办法
2649
查看次数

从String解析datetime

我有一个字符串

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

c# asp.net

2
推荐指数
1
解决办法
146
查看次数

根据模式匹配的indext搜索List <>的一部分

我试图定义一个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"

c# linq

2
推荐指数
1
解决办法
47
查看次数

检查测试条件值IN的C#if语句(就像在t-sql中一样)

我想知道是否可以使用像"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)

什么是正确的语法?

c# if-statement

2
推荐指数
1
解决办法
200
查看次数