问题列表 - 第10018页

.NET SqlConnection类,连接池和重新连接逻辑

我们有一些客户端代码,它使用.NET中的SqlConnection类与SQLServer数据库通信.它会间歇性地失败并出现此错误:

"ExecuteReader需要一个开放且可用的连接.连接的当前状态为Closed"

"临时"解决方案是重新启动过程,之后一切正常 - 但是,这显然不能令人满意.

代码保留了SqlConnection实例的缓存,每个数据库一个.

我们想重新编写代码,但在此之前,我需要了解一些事情:

我的第一个问题是:重复连接和断开SqlConnection对象是否效率低下,或者底层库是否代表我们执行连接池?

// Is this bad/inefficient?
for(many-times)
{
    using(SQLConnection conn = new SQLConnection(connectionString))
    {
        // do stuff with conn
    }
}
Run Code Online (Sandbox Code Playgroud)

因为我们的代码不能执行上述操作,所以问题的可能原因似乎是在连接的"生命周期"期间底层SQLServer数据库发生了某些事情,导致连接被关闭...

如果事实证明"缓存"SqlConnection对象是值得的,那么建议的方法是处理所有可以通过"重新连接"到数据库来解决的错误.我在谈论的场景如下:

  • 数据库脱机并重新联机,但客户端进程在发生这种情况时没有打开的事务
  • 数据库"断开连接",然后"重新连接"

我注意到SqlConnection上有一个"State"属性...是否有适当的方法来查询?

最后,我有一个测试SQLServer实例设置了完全访问权限:我怎样才能再现确切的错误"ExecuteReader需要一个开放的可用连接.连接的当前状态是关闭的"

.net c# sql-server connection-pooling

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

如何在美丽的汤中获得嵌套元素

我正在努力获取在td中获取一些href所需的语法.table,tr和td元素没有任何类或id.

如果我想在这个例子中抓住锚点,我需要什么?

<tr> <td> <a> ...

谢谢

python beautifulsoup

18
推荐指数
2
解决办法
3万
查看次数

sql 2005 - 多次指定列

尝试在sql 2005中运行此查询时出现以下错误:

    SELECT tb.*
    FROM (
        SELECT * 
        FROM vCodesWithPEs INNER JOIN vDeriveAvailabilityFromPE 
        ON vCodesWithPEs.PROD_PERM = vDeriveAvailabilityFromPE.PEID 
        INNER JOIN PE_PDP ON vCodesWithPEs.PROD_PERM = PE_PDP.PEID
    ) AS tb;

Error: The column 'PEID' was specified multiple times for 'tb'.
Run Code Online (Sandbox Code Playgroud)

我是sql的新手.提前感谢您的建议.

ENEO.

sql database

28
推荐指数
2
解决办法
7万
查看次数

手动将 varbinary 数据插入 SQL Server

我们有一个用于用户设置的 SQL Server 表。最初的设置是域对象,它们已被序列化为 XML 到表中,但我们最近开始将它们序列化为二进制。

然而,作为我们部署过程的一部分,我们静态地为我们的用户预先填充了预定义设置的表。最初,这就像从自定义数据库中复制 XML 并将其粘贴到在构建数据库后运行的 INSERT 语句中一样简单。但是,由于我们已将设置存储为二进制数据,因此无法使其正常工作。

我们如何从 SQL Server 中的 varbinary 列中提取二进制数据并将其粘贴到静态 INSERT 脚本中?我们只想为此使用 SQL,我们不想使用任何实用程序。

提前致谢,杰里米

sql sql-server

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

Tag属性的常见用途

我已经开始使用这个很多来将我的UI元素链接到他们的数据支持类(无论可能是什么).您将Tag属性用于哪些常见用途?

的确,你是否完全使用它?我知道我很久没有了.

c# silverlight wpf winforms

9
推荐指数
1
解决办法
9787
查看次数

使用DefaultCredentials和DefaultNetworkCredentials

我们很难确定这些凭证对象的工作方式.事实上,他们可能无法按照我们期望的方式工作.这是对当前问题的解释.

我们有2台服务器需要通过webservices相互通信.第一个(让我们称之为Server01)有一个Windows服务作为NetworkService帐户运行.另一个Server02具有与IIS 6.0一起运行的ReportingServices.Windows Service on Server01正在尝试使用Server02ReportingServices WebService生成报告并通过电子邮件发送它们.

所以,这是我们到目前为止所做的尝试.

在运行时设置凭据(这完全正常):

 rs.Credentials = new NetworkCredentials("user", "pass", "domain");
Run Code Online (Sandbox Code Playgroud)

现在,如果我们可以使用通用用户一切都没问题,但是......我们不被允许.因此,我们尝试使用DefaultCredetials或DefaultNetworkCredentials并将其传递给RS Webservice:

rs.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials
Run Code Online (Sandbox Code Playgroud)

要么:

rs.Credentials = System.Net.CredentialCache.DefaultCredentials
Run Code Online (Sandbox Code Playgroud)

无论哪种方式都行不通.我们总是从IIS获得401 Unauthrorized.现在,我们知道如果我们想要访问记录为NetworkService的资源,我们需要将其授予DOMAIN\MachineName$(http://msdn.microsoft.com/en-us/library/ms998320.aspx):

授予对远程SQL Server的访问权限

如果要访问同一域(或受信任域)中的另一台服务器上的数据库,则使用网络服务帐户的网络凭据对数据库进行身份验证.网络服务帐户的凭据的格式为DomainName\AspNetServer $,其中DomainName是ASP.NET服务器的域,AspNetServer是您的Web服务器名称.

例如,如果ASP.NET应用程序在域CONTOSO中名为SVR1的服务器上运行,则SQL Server将看到CONTOSO\SVR1 $的数据库访问请求.

我们假设以相同的方式授予IIS访问权限.但事实并非如此.或者至少,没有正确设置某些内容以使其正确进行身份验证.

所以,这里有一些问题:

  1. 我们在某个地方读过"模仿用户",我们是否需要在Windows服务中的某处设置?

  2. 是否可以将对NetworkService内置帐户的访问权限授予远程IIS服务器?

谢谢阅读!

web-services credentials defaultnetworkcredentials reporting-services

28
推荐指数
1
解决办法
4万
查看次数

4
推荐指数
1
解决办法
2184
查看次数

Scala如何"填写"案例类中缺少的参数?

我打电话的时候:

actor_ ! Exit
Run Code Online (Sandbox Code Playgroud)

如何将其转换为以下结构:

case class Exit(from: AbstractActor, reason: AnyRef)
Run Code Online (Sandbox Code Playgroud)

特别地,它是如何,当我把这种从已经远程(客户端)演员link编到远程(服务器)演员,该服务器接收的一个实例Exit,其中from属性是一个演员:

'remotesender0@Node(10.10.7.90,8366)
Run Code Online (Sandbox Code Playgroud)

基本上我想知道如何获得这个remote-client-actor对象的句柄!

scala remote-actors actor

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

C#将字符串转换为DateTime

我有2个字符串:

string d = "09/06/24";
string t = "13:35:01";
Run Code Online (Sandbox Code Playgroud)

我想取字符串并将它们组合起来制作一个日期时间变量:

newDT = Convert.ToDateTime(d + t);
Run Code Online (Sandbox Code Playgroud)

编译但是当它击中那条线时它会失败..........任何想法?

c# datetime

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

使用Quartz获取集群中所有当前正在执行的作业的列表

石英中的Scheduler.getCurrentlyExecutingJobs()方法显然不支持群集.人们用什么方法来获取所有正在执行的工作的列表?

quartz-scheduler java-ee

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