我们有一些客户端代码,它使用.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需要一个开放的可用连接.连接的当前状态是关闭的"
我正在努力获取在td中获取一些href所需的语法.table,tr和td元素没有任何类或id.
如果我想在这个例子中抓住锚点,我需要什么?
<tr> <td> <a> ...
谢谢
尝试在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 Server 表。最初的设置是域对象,它们已被序列化为 XML 到表中,但我们最近开始将它们序列化为二进制。
然而,作为我们部署过程的一部分,我们静态地为我们的用户预先填充了预定义设置的表。最初,这就像从自定义数据库中复制 XML 并将其粘贴到在构建数据库后运行的 INSERT 语句中一样简单。但是,由于我们已将设置存储为二进制数据,因此无法使其正常工作。
我们如何从 SQL Server 中的 varbinary 列中提取二进制数据并将其粘贴到静态 INSERT 脚本中?我们只想为此使用 SQL,我们不想使用任何实用程序。
提前致谢,杰里米
我已经开始使用这个很多来将我的UI元素链接到他们的数据支持类(无论可能是什么).您将Tag属性用于哪些常见用途?
的确,你是否完全使用它?我知道我很久没有了.
我们很难确定这些凭证对象的工作方式.事实上,他们可能无法按照我们期望的方式工作.这是对当前问题的解释.
我们有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访问权限.但事实并非如此.或者至少,没有正确设置某些内容以使其正确进行身份验证.
所以,这里有一些问题:
我们在某个地方读过"模仿用户",我们是否需要在Windows服务中的某处设置?
是否可以将对NetworkService内置帐户的访问权限授予远程IIS服务器?
谢谢阅读!
web-services credentials defaultnetworkcredentials reporting-services
我需要显示加载项目子项的进度.请告知如何实现像在Mail应用程序中完成的进度指示器:
大纲视图中的进度指标http://www.quicksnapper.com/files/10513/5329281414A48CEBA2FFE0_m.png
PS这里是使用指标子视图的源代码:http://snippets.dzone.com/posts/show/7684
我打电话的时候:
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对象的句柄!
我有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)
编译但是当它击中那条线时它会失败..........任何想法?
石英中的Scheduler.getCurrentlyExecutingJobs()方法显然不支持群集.人们用什么方法来获取所有正在执行的工作的列表?
c# ×3
sql ×2
sql-server ×2
.net ×1
actor ×1
cocoa ×1
credentials ×1
database ×1
datetime ×1
java-ee ×1
macos ×1
objective-c ×1
outline-view ×1
python ×1
scala ×1
silverlight ×1
web-services ×1
winforms ×1
wpf ×1