首页 \ 问答 \ 从IIS获取ERR_CONNECTION_RESET,日志中没有信息(Getting ERR_CONNECTION_RESET from IIS with no information in logs)

从IIS获取ERR_CONNECTION_RESET,日志中没有信息(Getting ERR_CONNECTION_RESET from IIS with no information in logs)

当我的ASP.NET服务器尝试回复错误时,我在Chrome中获得了ERR_CONNECTION_RESET

通常我可以通过查看日志文件找到有关服务器错误的信息,但那里什么都没有。

在响应中运行调试器似乎表明一切正常,但最后,Chrome告诉我连接已重置。

以下是处理异常处理的代码:

    try
    {
       ...
    }
    catch (ArgumentException e)
    {
        Response.StatusCode = 400;
        Response.StatusDescription = e.Message;
        return new ContentResult {Content = "" };
    }

Chrome在控制台中显示net::ERR_CONNECTION_RESET

使用Fiddler,我收到错误消息[Fiddler] ReadResponse() failed: The server did not return a complete response for this request. Server returned 0 bytes. [Fiddler] ReadResponse() failed: The server did not return a complete response for this request. Server returned 0 bytes.

如果我在IIS中启用失败的请求跟踪 ,并打开生成的xml文件

    GENERAL_FLUSH_RESPONSE_END 


    BytesSent
    0 

    ErrorCode
    The parameter is incorrect.
     (0x80070057) 

我花了好几个小时试图调试这个没有太多运气。


I am getting a ERR_CONNECTION_RESET in Chrome when my ASP.NET server is trying to reply with an error.

Usually I can find information about server errors by looking in the log files, but there is nothing there.

Running a debugger over the reponse seems to show everything is OK, except at the end, Chrome tells me the connection was reset.

Here is the code that is handling the exception handling:

    try
    {
       ...
    }
    catch (ArgumentException e)
    {
        Response.StatusCode = 400;
        Response.StatusDescription = e.Message;
        return new ContentResult {Content = "" };
    }

Chrome shows me net::ERR_CONNECTION_RESET in the console.

Using Fiddler, I get the error message [Fiddler] ReadResponse() failed: The server did not return a complete response for this request. Server returned 0 bytes.

If I Enable Failed Request Tracing in IIS, and open the generated xml file

    GENERAL_FLUSH_RESPONSE_END 


    BytesSent
    0 

    ErrorCode
    The parameter is incorrect.
     (0x80070057) 

I have spent hours trying to debug this without much luck.


原文:https://stackoverflow.com/questions/39503011
更新时间:2023-09-12 12:09

最满意答案

“最佳”取决于您拥有的资源。

这是我要做的:

  1. 为每个单词长度存储单独的字典。
  2. 我假设您的搜索不区分大小写! 如果字符a..z出现在字中,则为每个字存储32位值,其中设置位0到25。 将单词存储在Map<Integer, List<String>> (键是32位值,value是此键的所有单词的列表)

如何搜索:

  1. 拿着想要长度的字典
  2. 为您的模式创建32位值。
  3. 迭代Map所有键,并检查键的按位和模式的32位值是否等于模式的32位值。 如果不是这不能匹配。 如果通过此检查,则仅仅匹配是不够的,因为它不处理字符的顺序或者如果出现多于1的字符。 但检查速度非常快,不需要查看单词的每个字符。

  4. 迭代Map的列表,并通过将列表中每个单词的字符与模式进行比较来检查它们与模式的真实匹配。

示例:三字母单词的字典:the,cat,bag,nor,ega,atc,ron;

-> Hashvalues
     00000000000010000000000010010000   the
     00000000000010000000000000000101   cat, atc
     00000000000000000000000001000011   bag
     00000000000000100110000000000000   nor, ron
     00000000000000000000000001010001   age, ega

 Value for pattern _a_ is 00000000000000000000000000000001

Step 3 returns that the keys 
      00000000000010000000000000000101,  
      00000000000000000000000001000011 and 
      00000000000000000000000001010001 are candidates for matches.



Step 4 returns: 'cat' and 'bag'

'Best' depends on the resources you have.

Here is what I would do:

  1. Store a separate dictionary for each word length.
  2. I assume your search is not case sensitive! Store for each word a 32-bit value in which the bits 0 to 25 are set if the character a..z occurs in the word. Store the words in a Map<Integer, List<String>> (key is the 32-bit value, value is a list of all words for this key)

How to search:

  1. Take the dictionary with the words of the wanted length
  2. Create the 32-bit value for your pattern.
  3. Iterate all keys of the Map and check if the key bitwise and with the 32-bit value for your pattern is equal to the 32-bit value for your pattern. If not this cannot be matches. If this check is passed, it is not sufficient to be a match, because it does not handle order of characters or if the occur more than ones. But the check is very fast and does not need to look at each character of the words.

  4. Iterate the list in the Map and check them which are real matches for your pattern by comparing the characters of each word in the list with your pattern.

Example: Dictionary for 3-letter words: the, cat, bag, nor, ega, atc, ron;

-> Hashvalues
     00000000000010000000000010010000   the
     00000000000010000000000000000101   cat, atc
     00000000000000000000000001000011   bag
     00000000000000100110000000000000   nor, ron
     00000000000000000000000001010001   age, ega

 Value for pattern _a_ is 00000000000000000000000000000001

Step 3 returns that the keys 
      00000000000010000000000000000101,  
      00000000000000000000000001000011 and 
      00000000000000000000000001010001 are candidates for matches.



Step 4 returns: 'cat' and 'bag'

相关问答

更多

相关文章

更多

最新问答

更多
  • 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
  • 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
  • OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
  • 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
  • codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
  • 在计算机拍照在哪里进入
  • 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
  • No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
  • 单页应用程序:页面重新加载(Single Page Application: page reload)
  • 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
  • System.StackOverflow错误(System.StackOverflow error)
  • KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • C#类名中允许哪些字符?(What characters are allowed in C# class name?)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 在Angular 5中不是一个函数(is not a function in Angular 5)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • 常见的python rpc和cli接口(Common python rpc and cli interface)
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)