- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在一个简单的测试应用程序(Visual Studio 控制台应用程序)上遇到了一个奇怪的零星问题,该应用程序通过向它发送简单的 http 请求并为响应时间计时,充当托管 aspx 网站(不是应用程序)的看门狗。过去我已经使用它很多周了,没有出现这个特殊问题。在一天中看似随机的时间,我的 http 请求开始因上述错误而失败。它们似乎是超时,因为失败的请求都需要 60 秒。经过一段时间的上述一致错误(在一种情况下从几分钟到 90 分钟的随机时间段),错误停止并且 http 响应开始以正常速度(通常大约 0.25 秒)返回而没有错误。看门狗客户端请求触发一个非常简单的数据库查找,在服务器端只需 1-2 行代码。这是托管在共享的 Windows 托管网络主机上。
我还可以通过更新我的主机站点上的任何 .cs 文件来随意触发此行为,这会导致应用程序池回收。我的看门狗应用程序立即开始再次超时并出现上述错误。
它闻起来像是某种回收连接问题,因为如果我只是重新启动看门狗应用程序,它就可以正常工作并且响应开始以正常延迟返回。
我试过设置 request.KeepAlive = false 和 request.ServicePoint.ConnectionLimit = 1,这些都没有帮助。
另一个线索,我无法使用 IIS 管理器连接到托管在该服务器上的两个不同网站中的任何一个,这一直运行良好。我在尝试通过 IIS 管理器连接时收到“底层连接已关闭”。每次。我有一段时间没有更新任何一个网站,所以这不是我的任何改变。
这是一个在 IIS7 上运行的后端 ASP.NET 4 网站,具有集成管道模式下的专用应用程序池。
此外,如果我将看门狗应用程序中的 sleeptime 变量更改为 30 秒之类的值,则问题不会出现。在我相信 10-20 秒的范围内有一些神奇的数字,如果请求暂停的时间超过这个时间,它们永远不会失败。
我认为 IIS 管理器无法连接的事实很好地证明了独立于我的测试应用程序的主机端出现问题,但我想在打开支持事件之前覆盖我的基础......特别是因为我的控制台简单重启应用程序解决了这个问题......至少有一段时间。
class Program
{
//make a simple web request and just return the status code
static string SendHttpMsg(string url, string postData)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] byte1 = encoding.GetBytes(postData);
request.ContentLength = byte1.Length;
//request.KeepAlive = false; //no effect
//request.ServicePoint.ConnectionLimit = 1; //no effect
Stream requestStream = request.GetRequestStream();
requestStream.Write(byte1, 0, byte1.Length);
requestStream.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Close();
return ((int)response.StatusCode).ToString();
}
static void Main(string[] args)
{
int sleeptime = 5000;
string result = "";
while (true)
{
DateTime start = DateTime.Now;
try
{
//this is a very simple call that results in a very simple, fast query in the database
result = SendHttpMsg("http://example.com/somepage.aspx", "command=test");
}
catch (Exception ex)
{
//fancy exception handling here, removed
}
DateTime end = DateTime.Now;
TimeSpan calltime = end - start;
Console.WriteLine(end.ToString() + ", " + calltime.TotalSeconds.ToString("F") + " seconds " + result);
Thread.Sleep(sleeptime);
}
}
}
最佳答案
您可能有悬空连接,而在 HTTP 1.1 中,您仅限于 2 个连接。
试试 changing the HTTP Protocol Version used in the request :
request.ProtocolVersion = HttpVersion.Version10;
<system.net>
<defaultProxy enabled="false">
<proxy/>
<bypasslist/>
<module/>
</defaultProxy>
</system.net>
request = null
方法中的语句)。
关于asp.net - "An existing connection was forcibly closed by the remote host"来自 HttpWebRequest 的偶发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17519736/
有什么区别 git ls-remote --heads origin 和 git ls-remote . "refs/remotes/*" ? --heads origin 版本需要一段时间才能运行,
当我执行 git remote -v 时,我得到了 origin git@xxx.yyy.cc:name fetch) origin git@xxx.yyy.cc:name (push) 为什么
要构建我的远程环境,我需要设置几个环境变量(它们在 docker-compose 文件中使用)。这些是在我的 ZSH 环境中设置的,因此从终端运行 docker-compose build 可以按预期
我有一个创建多个 Docker 镜像的项目。我想在 vscode-remote 中为每个图像设置一个 devcontainer,以便我可以为每个图像启动一个容器。 我一次只需要启动并连接到一个容器/图
我设置了以下 Remote : $ git remote korg rorg 以及以下分支: $ git branch -a * (no branch) remotes/korg/gingerbr
这是我得到的错误。我有一个简单的 .Net Remoting 设置。连接空闲几分钟后出现此错误。 对象“/7966b546_734e_410d_817a_a0e701f114f6/lfxehvbczn
我有两个远程 git 分支(称它们为“RemoteA”和“RemoteB”)。 “RemoteB”在过去的某个时候从“RemoteA”中分离出来。在那之后,许多提交已应用于两个分支,但我现在希望“Re
我知道使用下面的 git 命令我可以列出我所有的“远程”分支... [someone@someone-pc somerepo]$ git ls-remote Username for 'https:/
我最需要的是一些建议。 我有以下示例: 应用程序1.exe - 有对象 MyList 应用程序2.exe - 需要访问 MyList 并与对象交互,就好像它是从 Application2 创建的一样。
我有一个大型应用程序,它通过 .net 远程处理使用 COM 从 Web 层调用到中间层。在此模式下启动和运行非常慢。 COM 边界的两边都是我们的代码。 我希望能够(可选)在单个进程中运行它。相当多
假设我有两个 Remote :origin 和 upstream。有没有一种方法可以将对象 upstream 推送到 origin,以便其他从 origin 克隆我的 repo 的人能够运行像 git
简而言之; 如何删除远程多个 merge 的 Remote ? 更多背景; 我有一个 git 存储库,其中包含数十个已 merge 到 master 中的 Remote 。我可以使用以下方法一次删除这
我有一个仓库的本地 git clone。我当然可以使用 git remote 查看我的本地远程 origin。但是,我可以看到我的 Remote origin 的 Remote 吗?我可以查看有关这些
先决条件 - 远程服务器和客户端均已设置,客户端能够通过客户端激活的业务对象在服务器端调用方法并从服务器端接收事件。 在保持服务器和客户端运行的情况下更改远程服务器的IP地址,客户端仍然可以执行上述任
我正在设置一个新的远程主机,每次启动它时,我都会收到以下错误输出:有关如何解决此问题的任何反馈或指示? Pseudo-terminal will not be allocated because st
我只是不明白 Git 的帮助页面。那么会发生什么或有什么区别? 假设我有一个带有子模块 B 的 Git 项目 A。子模块 B 确实有一个子模块 C。克隆存储库后,A 指向 B 的特定提交。B 指向 C
我在 Java 中使用 rmi。但是有一个 ExportException“远程对象实现非法远程接口(interface)”。 这是我的代码,有人可以帮帮我吗? public interface Re
我对 git 越来越熟悉了,但是我遇到了一些让我困惑的事情。我们在这里使用本地镜像,因为我们的线路很慢。为了指向镜子,我在 .gitconfig 中有一些常用的东西。 当我想推送时,问题就来了。看来我
我设置了一个带有 conan“远程”存储库的 jfrog artifactory 来代理官方 conan-center 存储库。我看到三个不同的 conan-center URL,具体取决于我阅读的来
我无法使用 VSCode 远程 SSH 在我的远程服务器上保存任何文件,因为我不是 root 用户。 我关注了 official documentation关于如何使用 SSH 配置文件设置 ssh
我是一名优秀的程序员,十分优秀!