Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检测是否有防火墙或其他原因阻止我连接到特定服务器?_C#_Asp.net_Performance_Networking_Request - Fatal编程技术网

C# 如何检测是否有防火墙或其他原因阻止我连接到特定服务器?

C# 如何检测是否有防火墙或其他原因阻止我连接到特定服务器?,c#,asp.net,performance,networking,request,C#,Asp.net,Performance,Networking,Request,如果我的web应用程序有一个特定的组件(小部件),它连接到另一台服务器(无法控制),以便从xml文件中读取 有时,我连接的服务器管理员会设置防火墙或更改某些配置。当我的应用程序尝试连接到这个服务器时,小部件需要很长时间才能变空 问题是,尝试连接到该服务器的时间是加载页面时间的一部分。我觉得这么长时间来请求页面有点不对劲 我如何确定是否可以连接到该服务器以读取数据,或者是否存在阻止我执行此操作的问题?我不太了解您的小部件由什么组成,以及为什么它会阻止页面加载。但有两种方法可以将页面加载的小部件解

如果我的web应用程序有一个特定的组件(小部件),它连接到另一台服务器(无法控制),以便从
xml文件中读取

有时,我连接的服务器管理员会设置防火墙或更改某些配置。当我的应用程序尝试连接到这个服务器时,小部件需要很长时间才能变空

问题是,尝试连接到该服务器的时间是加载页面时间的一部分。我觉得这么长时间来请求页面有点不对劲



我如何确定是否可以连接到该服务器以读取数据,或者是否存在阻止我执行此操作的问题?

我不太了解您的小部件由什么组成,以及为什么它会阻止页面加载。但有两种方法可以将页面加载的小部件解耦:

  • 将小部件放入iframe元素中

  • 首先为小部件插入占位符(例如div元素和加载…文本)。然后,在页面加载后,使用Javascript将占位符替换为有效的HTML


  • 允许您在站点上使用此XML提要吗?如果没有,他们可能会故意阻止您访问它


    但是,我会在本地缓存XML文件,并让cron作业定期从另一台服务器提取最新版本。

    @Aristos:如果防火墙配置为以静默方式将包丢弃到被阻止的服务器或端口,则不会立即出现错误。相反,它需要一段时间,直到超时过期,并且发送者认为它不会得到答复。@just_name:它是什么类型的“小部件”?它是HTML、ActiveX、Flash吗?它是HTML小部件
    在超时过期之前需要一段时间。
    是的,这就是问题所在,我觉得整个页面加载比平常要花更多的时间,当我停止与此服务器的连接时,页面加载速度非常快。要检查远程服务器的问题,请使用命令工具,如ping和telnet。您是否能够远程登录到应用程序尝试连接的端口?如果无法ping,则可以使用System.Net.Socket对象在C#中编写测试程序。如果套接字连接到端口没有错误,则其工作正常。你可以增加这个程序的频率来检查数据包是否被悄悄丢弃。我知道远程服务器有问题,我无法连接,我会打电话给管理员解决。但是这台服务器不在我的控制范围内,所以我想隔离它,这样页面加载速度很快,即使这个小部件无法连接到服务器。你能解释一下如何缓存
    xml文件吗。请给我解释一下最后一行