请考虑以下代码,这些代码是许多ChannelFactory示例的典型代码:
WSHttpBinding myBinding = new WSHttpBinding();
EndpointAddress myEndpoint = new EndpointAddress(
ConfigurationSettings.AppSettings["HelloWorldServiceURL"]);
ChannelFactory<IHelloWorldService> myChannelFactory =
new ChannelFactory<IHelloWorldService>(myBinding, myEndpoint);
IHelloWorldService proxy = myChannelFactory.CreateChannel();
((IClientChannel)proxy).Open();
HelloWorldDataContract dc = proxy.SayHello();
((IClientChannel)proxy).Close();
Run Code Online (Sandbox Code Playgroud)
请注意,当调用proxy.Open()时,通道的状态和ChannelFactory的状态都变为"已打开".当调用proxy.Close()时,通道的状态变为"关闭",但ChannelFactory的状态仍为"已打开".
是否应该关闭ChannelFactory?在许多例子中我似乎没有看到这一点.另外,如果可能的话,请解释开放频道与开放频道工厂之间的区别.
另外,我知道IDisposable问题,因此除非它对答案有直接影响,否则它可能会被忽略.
我一次又一次地读到,使用MSTest比使用其他测试框架(如nUnit,MBUnit等)更难以进行TDD /测试...有什么建议的手动变通方法和/或第三方位,你建议什么时候MSTest是基础设施政策的唯一选择?我主要想知道的是VS 2008 Team Suite,但我认为VS 2008 Pro的提示也适用,因为这些版本现在也包含了一些MSTest功能.
看起来Sql Reporting Services服务器在几个地方记录信息,包括数据库中的Web服务器日志和日志记录表.SSRS记录到的所有位置在哪里,每个位置记录的错误类型是什么?
我的印象是单元测试类中的测试方法将按它们出现在类文件中的顺序执行.显然这不是真的.它似乎也不是纯粹基于字母顺序.MSTEST如何决定执行顺序?
编辑:我挖了一下后能够找到答案.见下文.
我注意到了Microsoft.VisualStudio.TestTools.UnitTesting.PriorityAttribute的存在.从阅读一点点来看,它似乎与测试执行顺序没有任何关系.在这种情况下,它引出了一个问题:它用于什么?
我很好奇,Visual Studio本身对任何插件/框架都有这个属性的任何已知用途.
我的团队正在使用新的XP64工作站.到目前为止我们一直在使用XP32.我们的大多数工作都是在托管的C#/ VS2008/.net 3.5和SQL Server 2005中完成的.但是我们确实有一些应用仍在VS2005/.net 2.0中.我们的大多数应用程序是ASP.NET webforms应用程序和在生产中的64位服务器上运行的WCF服务.但是,我们正在进行一些必须在32位计算机上运行的WPF开发.
我们应该注意到任何陷阱或过渡的痛苦吗?
首先,我明白运行超大/长时间运行的报告是一个可怕的想法。我知道 Microsoft 有一个经验法则,规定 SSRS 报告的执行时间不应超过 30 秒。然而,由于外部力量,例如遵守州法律,有时庞大的报告是首选的邪恶。
在我工作的地方,我们有一个从 Crystal Reports 迁移到 SSRS 的 asp.net (2.0) 应用程序。由于庞大的用户群和复杂的报告 UI 要求,我们有一组屏幕可以接受用户输入的参数并创建要在夜间运行的计划。由于应用程序支持多个报告框架,我们不使用 SSRS 的调度/快照功能。系统中的所有报告均由预定的控制台应用程序生成,该应用程序采用用户输入的参数,并使用创建报告时使用的相应报告解决方案生成报告。对于 SSRS 报告,控制台应用程序生成 SSRS 报告并通过 SSRS Web 服务 API 将它们导出为 PDF。
到目前为止,SSRS 比 Crystal 更容易处理,除了我们最近从 Crystal 报告转换为 SSRS 的某个 25,000 页的报告之外。SSRS 服务器是 64 位 2003 服务器,有 32 gigs 的运行 SSRS 2005 的内存。我们所有的小报告都工作得非常好,但是我们在处理像这个这样的大报告时遇到了麻烦。不幸的是,我们似乎无法通过 Web 服务 API 生成预测报告。生成/导出大约 30-35 分钟后会出现以下错误:
异常消息:基础连接已关闭:接收时发生意外错误。
Web 服务调用是我相信你们以前都见过的:
data = rs.Render(this.ReportPath, this.ExportFormat, null, deviceInfo,
selectedParameters, null, null, out encoding, out mimeType, out usedParameters,
out warnings, out streamIds);
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果使用报表管理器直接在报表服务器上运行报表,则该报表将运行/呈现/导出。为报告生成数据的过程运行大约 …
如何为一个全局范围的单例对象创建绑定,该对象的实例在一定时间后过期?一旦对象过期,我希望Ninject能够在该实例到期之前提供新的实例,等等......
伪绑定以获得想法:
Bind<Foo>().ToSelf()
.InSingletonScope()
.WithExpiration(someTimeSpan);
Run Code Online (Sandbox Code Playgroud)
我不是在寻找那种确切的语法,而是一种最终获得所需结果的方法.本质上,它就像使用Ninject作为滑动应用缓存一样.
更新 Ian建议的方法是正确的.我只需稍微调整一下,因为使用DateTime作为上下文键由于某种原因不起作用.这是我最终得到的:
var someTimeInFuture = DateTime.Now.AddSeconds(10);
var fooScopeObject = new object();
Func<IContext, object> scopeCall = ctx =>
{
if (someTimeInFuture < DateTime.Now)
{
someTimeInFuture = DateTime.Now.AddSeconds(10);
fooScopeObject = new object();
}
return fooScopeObject;
};
Kernel.Bind<Foo>()
.ToSelf()
.InScope(scopeCall);
Run Code Online (Sandbox Code Playgroud) 我有一个StackPannel的ScrollViewer.用户希望保存的ScrollViewer中的位置,所以当应用程序被重新加载他们的数据StackPannel将展示他们之前所查看的项目.它与选择的项目(如果有的话)无关,仅与ScrollViewer相对于StackPannel项目的部分有关.所以,如果StackPannel有50个项目和ScrollViewer中滚动,使项目StackPannel 20-25是可见的,我需要重新加载应用程序和向下滚动到该位置没有选择项目.此外,我正在使用MVVM,我也希望通过ViewModel代码设置ScrollViewer位置.
在企业级程序集中定义DataContracts然后在WCF服务项目中引用它们而不是在单个WCF服务解决方案级别定义它们是一种好的做法吗?我见过的所有WCF示例都避免了该主题,并且仅在服务解决方案中定义了DataContracts.我与之交谈的一些程序员希望将DataContracts视为企业级规范数据模型的不同风格,而不是服务本地合同.我还没有找到支持或反对这一观点的任何论据.
可能很难为这个问题选择正确的答案,但我会尝试.我将至少放弃任何我认为增加了对该主题的理解的投票.
当我在母版页中使用时,JQuery无法识别标签.以下代码:
<script type="text/javascript">
$("body").append('<div id="test"><p>Hello</p></div>');
</script>
Run Code Online (Sandbox Code Playgroud)
在普通页面中正常工作,但当主体在母版页中并且我将相同的代码放在母版页中时 - 没有任何反应!
如何从ASP母版页面附加到页面正文?这有什么诀窍吗?
任何帮助将不胜感激.
标记.
mstest ×3
wcf ×3
c# ×2
sql-server ×2
.net ×1
64-bit ×1
asp.net ×1
datacontract ×1
jquery ×1
master-pages ×1
mvvm ×1
ninject ×1
tdd ×1
web-services ×1
windows-xp ×1
wpf ×1