小编Jas*_*son的帖子

追踪数据库连接问题

背景

我们在连接到单个数据库服务器的不同Web服务器上有许多Web应用程序.在过去几个月中,我们注意到,每隔一段时间,我们的Web服务器将无法连接到数据库服务器.

我们的环境

我们有几个不同的Web环境,一些运行ColdFusion,另一些运行.NET..NET应用程序既是Web窗体又是MVC.它们涵盖从2.0到4.5的多个版本.ColdFusion和.NET Web服务器都是基于Windows的计算机.ColdFusion和.NET Web环境都是集群式的,有些机器是物理机器,有些则是虚拟机器.

我们的数据库服务器是SQL Server 2008 r2.它包含多个数据库.每个应用程序都有自己的数据库用户,它与服务器连接,只允许它访问特定的数据库.

其他事实

  • 当我们发现问题时,它们会在短时间内发生,持续时间从几秒钟到几分钟不等.
  • 当我们发现问题时,突发包含来自多个不同应用程序的错误,而不仅仅包含一个应用程序.
  • 当我们发现问题时,突发包含来自不同Web环境的应用程序的错误.(这让我们认为我们可以排除应用程序本身就是问题)
  • 连接问题突然发生在白天和黑夜的不同时间.它们并非总是在高使用时间.
  • 我们已经监控了诸如用户连接数,内存,IO,CPU使用率等等...我们还没有看到尖峰或其他任何可能指向问题的东西.
  • 我们已经在网络和数据库服务器上安装了wireshark,希望能够在没有任何成功的情况下解决问题.

问题

  1. 有没有人建议我下一步该看什么?
  2. 是否存在可能导致此问题的数据库属性?
  3. 有没有办法以更好的方式"监控"数据库和Web服务器之间的连接?
  4. 是否有任何可以在应用程序方面完成以更好地了解正在发生的事情?

应用程序捕获的错误

  • .NET错误
    • 建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供者:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)
    • 超时已过期.操作完成之前经过的超时时间或服务器没有响应.
    • 从服务器接收结果时发生传输级错误.(提供者:TCP提供者,错误:0 - 信号量超时期限已过期.)
    • 超时已过期.从池中获取连接之前经过的超时时间.这可能是因为所有池连接都在使用中并且达到了最大池大小.
  • ColdFusion错误
    • 执行数据库查询时出错.与主机的TCP/IP连接失败.java.net.ConnectException:连接超时:connect
      第38行发生错误.
    • 执行数据库查询时出错.通过对等方重置连接:套接字写入错误
      第91行发生错误.
    • 执行数据库查询时出错.尝试建立连接超时
      错误发生在第38行.

asp.net error-handling coldfusion database-connection sql-server-2008-r2

7
推荐指数
1
解决办法
1397
查看次数

我的数据库安全性如何失败?

在我的SQL Server 2005数据库中的几个表中,我的所有数据都已被删除.反正有没有在SQL Server中记录过去一天运行的所有语句?我试图找出是否有人在意外中这样做,我的网络应用程序中存在漏洞,或者实际数据库已被泄露.

sql-server security sql-server-2005

6
推荐指数
1
解决办法
265
查看次数

为什么cflocation addtoken的默认值不等于no?

有没有什么好的理由为什么这个标签的默认值是肯定的?似乎应该几乎总是不行.我错过了什么?

coldfusion url-rewriting default-value cflocation

6
推荐指数
1
解决办法
1631
查看次数

使用C#构建Excel文件

我需要通过C#创建一个excel文件.我读过几个地方,创建XML文档是最简单的方法吗?我需要有多个命名选项卡,并能够指定特定单元格是文本,日期时间,数字等...任何建议或好的例子?

.net c# xml excel

6
推荐指数
1
解决办法
9379
查看次数

重命名数据库中的所有表

我有一个数据库,其中所有表都以一组相同的字符作为前缀.这样做是因为有一次他们在一个共享数据库中为宠物项目设置了数百个其他表.现在,应用程序以及数据库已准备好从该阶段移出,并准备好自己运行.我想删除每个表的前缀.有没有更简单的方法来执行此操作而不是单击右键并重命名每个表?

sql-server sql-server-2005

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

使用字节流和Dropbox API破坏docx文件

我们有一个网络应用程序,允许用户将文件上传到他们的Dropbox帐户.此Web应用程序使用Dropbox API来促进上载过程.上传后,当用户尝试查看文件类型.docx时,它会显示一条消息,"文件"somefile.docx"无法打开,因为内容存在问题".

以下是我们使用的一些代码:

首先,我们将文件转换为byte []并将其传递给API方法调用.

public static string DropboxUpload(byte[] DBbyte, string filename, string token, string tokensecret)
    {
        try
        {
            for (int i = 0; i < 4; i++)
            {
                var dropclient = new RestClient(FILEURL);
                dropclient.ClearHandlers();
                dropclient.AddHandler("*", new JsonDeserializer());

                dropclient.BaseUrl = FILEURL;
                dropclient.Authenticator = new OAuthAuthenticator(dropclient.BaseUrl, API_KEY, API_SECRET, token, tokensecret);

                var request = new RestRequest(Method.POST);
                request.Resource = VERSION + "/files/dropbox" + PATH;
                request.AddParameter("file", filename);

                request.AddFile(new FileParameter { Data = DBbyte, FileName = filename, ParameterName = "file" });

                var response = dropclient.Execute(request); …
Run Code Online (Sandbox Code Playgroud)

api docx xlsx dropbox

6
推荐指数
1
解决办法
1098
查看次数

适用于OpenID的最佳Coldfusion库

我正准备开始一个需要在Coldfusion 8中使用OpenID的项目.我发现了许多不同的选项,并且想知道什么是最好的,获得最多的支持,保持最新等等...

openid authentication coldfusion

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

为什么我不应该要求我的用户使用军事格式输入时间

我有一个表单要求用户输入事件的开始和结束时间.多年来,我们允许他们通过从三个下拉框中选择小时(1-12),分钟(1-60)和上午/下午来输入时间.这没有客户的抱怨,工作得很好.然而,今天我遇到了一个请求,要求将输入更改为一个文本框,以便用户在军事时间(即0000 - 2359)输入时间.在我的直觉中,我认为这是一个坏主意,但我很难提出任何确凿的事实.

我能说的最好的理由是什么,这是一个坏主意?

如果有更好的解决方案来输入时间,会是什么?

此外,仅供参考填写表单的用户可以从非常小的计算机技能到高级用户.他们绝不是军事相关的.

更新:我的所有用户都是本地用户,没有其他形式(网络或打印)使用军事时间作为标准.

time form-design

5
推荐指数
2
解决办法
1404
查看次数

文件名中的井号(#)导致错误

我有一个非常简单的文件上传,允许用户上传PDF文件.在另一页上,我然后通过锚标记引用这些文件.但是,似乎当用户上传包含井号(#)的文件时,它会破坏锚标记.它不会导致任何类型的Coldfusion错误,它只是找不到文件.如果我删除了#,它就可以了.我相信还有很多其他角色会遇到同样的问题.

我已经尝试URLEncodedFormat()在锚点内放置文件名,但这没有帮助.我唯一能想到的是每次上传时重命名文件并删除"#"字符(以及任何其他"坏"字符).

必须有一个更简单的解决方案.有任何想法吗?

anchor coldfusion file-upload

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

查看cfhttp请求

我想查看通过我的cfhttp标记发送的实际http请求.捕捉这个的最佳工具是什么?

特别是,我想确切地看到正在发送的标题和内容.

coldfusion httpwebrequest httprequest coldfusion-8

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