我正在为我的项目评估Padarn,并尝试实现一个非常简单的示例。我需要Padarn为我的WIN CE 5.0或6.0 web项目,我买了一个许可证,这是我的配置部分:
static void Main(string[] args)
{
m_padarnServer = new WebServer();
m_padarnServer.Start();
}这是我的渲染函数:
protected override void Render(HtmlTextWriter writer)
{
if (Response.IsClientConnected)
{
Response.Write("OK");
Response.Flush();
writer.Flush();
}
}这是我的配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="WebServer" type="OpenNETCF.Web.Configuration.ServerConfigurationHandler, OpenNETCF.Web" />
<section name ="httpRuntime" type ="OpenNETCF.Web.Configuration.HttpRuntimeConfigurationHandler, OpenNETCF.Web"/>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<WebServer
DefaultPort="80"
MaxConnections="20"
DocumentRoot="\nandFlash\Inetpub\"
Logging="true"
LogFolder="\Temp\Logs"
LogExtensions="aspx;html;htm;zip"
UseSsl="false"
>
<DefaultDocuments>
<Document>default.aspx</Document>
</DefaultDocuments>
<VirtualDirectories />
<Cookies />
<Caching />
</WebServer>
<httpRuntime
maxRequestLength="3000000"
requestLengthDiskThreshold="256"
/>
<requestLimits maxAllowedContentLength="2097151000"/>
</configuration>这是套接字连接检查器:
private static bool IsPortOpen()
{
TcpClient tcpClient = new TcpClient();
try
{
tcpClient.Connect("127.0.0.1", 80);
return true;
}
catch (Exception)
{
return false;
}
}我正在定期(每5秒)检查padarn正在运行的套接字连接( 127.0.0.1 : 80 ),但有时padarn服务器会关闭!我无法连接到它,当我检查套接字的端口时,它断开了连接,我必须重新启动Padarn
请帮帮我,这个配置是不是错了?我有什么问题?
发布于 2015-08-10 12:48:28
我认为问题在于TcpClients永远不会显式断开或关闭,因此每次调用IsPortOpen时,都会创建另一个TCP连接并保持打开状态。
在某些情况下,web服务器会达到配置为可以处理的最大并发请求数(20?),或者客户端本身耗尽了资源,无法创建更多连接。
事情最终会自行解决,因为web服务器可能决定关闭不活动的连接,或者连接客户端上的垃圾收集器可能会开始清理已经超出范围的TcpClient实例,在此过程中调用它们的Close/Dispose方法并关闭底层连接。
重新启动Padarn解决了这个问题,这一事实表明,可能是web服务器首先耗尽了资源(或者在达到最大连接数时开始拒绝连接)。
尝试显式关闭每个连接:
private static bool IsPortOpen()
{
using(TcpClient tcpClient = new TcpClient())
{
try
{
tcpClient.Connect("127.0.0.1", 80);
return true;
}
catch(Exception)
{
return false;
}
}
}https://stackoverflow.com/questions/30952076
复制相似问题