Tag: visual studio 2010

Lazy :“函数评估需要所有线程运行”

我有一个带有一些静态属性的静态类。 我在静态构造函数中初始化了所有这些,但后来意识到它是浪费的,我应该在需要时懒惰加载每个属性。 所以我切换到使用System.Lazy类型来完成所有脏工作,并告诉它不要使用它的任何线程安全function,因为在我的情况下执行始终是单线程的。 我最后得到了以下课程: public static class Queues { private static readonly Lazy g_Parser = new Lazy(() => new Queue(Config.ParserQueueName), false); private static readonly Lazy g_Distributor = new Lazy(() => new Queue(Config.DistributorQueueName), false); private static readonly Lazy g_ConsumerAdapter = new Lazy(() => new Queue(Config.ConsumerAdaptorQueueName), false); public static Queue Parser { get { return g_Parser.Value; } […]

Crystal Reports for Visual Studio 2010错误

我正在尝试使用ASP.NET 4.0和Visual Studio 2010从我的Web应用程序运行水晶报表。我已经从SAP站点安装了以下内容( http://www.businessobjects.com/jump/xi/crvs2010 /us2_default.asp ) 1)SAP Crystal Reports,Visual Studio 2010版本 – 标准EXE安装包,用于将软件安装到Visual Studio IDE中。 2)用于.NET Framework 4的SAP Crystal Reports运行时引擎(64位) 我有一个名为Reports.aspx的页面,其中我有一个水晶报表查看器控件 在Reports.aspx.cs文件中,我有以下代码: protected override void OnPreRender(EventArgs e) { ReportDocument report = new ReportDocument(); var path = Server.MapPath(“Reports/Sample.rpt”); report.Load(path); report.SetDatabaseLogon(“username”, “password”, “servername”, “databasename”); rptViewer.ReportSource = report; } 在report.Load(path)行上,我收到以下错误: 不支持的操作。 由JRC引擎处理的文档无法在C ++堆栈中打开。 我怎样才能解决这个问题?

正确处理和删除对UserControls的引用,以避免内存泄漏

我正在使用Visual c#express 2010在c#中开发一个Windows窗体应用程序(.NET 4.0)。我无法释放分配给UserControls的内存我不再使用了。 问题: 我有一个FlowLayoutPanel,显示自定义UserControls。 FlowLayoutPanel显示搜索结果等,因此必须重复更新显示的UserControl集合。 在创建和显示每个新的UserControl集之前,在我的FlowLayoutPanel的ControlCollection(Controls属性)中当前包含的所有控件上调用Dispose(),然后在同一ControlCollection上调用Clear()。 这似乎不足以处理UserControls使用的资源,因为每个新的UserControls集都被创建并添加到我的ControlCollection中, 我的UserControls似乎也没有被垃圾收集声明。 应用程序的内存使用量在很短的时间内急剧攀升,然后达到稳定状态,直到我显示另一个列表。 我还用.NET Memory Profiler分析了我的应用程序,它报告了许多可能的内存泄漏(见下节)。 我认为出了什么问题: 我错了。 问题是使用foreach构造迭代ControlCollection并在其控件上调用Dispose()导致的错误,Hans Passant在他的回答中描述了这个错误。 问题似乎是由我的UserControls中使用的ToolTip引起的。 当我删除这些时,我的UserControls似乎被垃圾收集声明。 .NET内存分析器证实了这一点。 我早期测试中的问题1和6(见下节)不再出现​​,并报告了一个新问题: 未释放的实例(释放资源并删除外部引用)7种类型的实例已被垃圾收集而未正确处理。 请查看以下类型以获取更多信息。 ChoiceEditPanel(inheritance),NodeEditPanel(inheritance),Button,FlowLayoutPanel,Label,> Panel,TextBox 即使工具提示的参考已经消失,这不是一个长期解决方案,但当我不再需要时,仍然存在确定性地处理我的UserControls的问题。 但是,删除对工具提示的引用并不重要。 代码和更多细节 我使用一个名为NodesDisplayPanel的UserControl,它充当FlowLayoutPanel的包装器。 这是我的NodesDisplayPanel类中的方法,用于清除FlowLayoutPanel中的所有控件: public void Clear() { foreach (Control control in flowPanel.Controls) { if (control != NodeEditPanel.RootNodePanel) { control.Dispose(); } } flowPanel.Controls.Clear(); // widthGuide is used to […]

从c#服务器端调用asmx:可以在client元素中找到匹配此契约的端点元素

我在srv1上写了一个asmx webSerivce。 我在srv2上写了一个asp.net (原始文本:一个asp.net)项目的bll项目 。 两者都托管在同一个Web域下 我想从asp.net的bll项目中调用asmx(原文:asp.net(c#)代码)。 1)我添加了一个Web引用,但找不到任何教程如何真正调用引用的服务。 我试过了: private void GetTemplateComponentsData() { var service = new ServiceReference.GetTemplateParamSoapClient(); TemplateParamsKeyValue[] responsArray = service.GetTemplatesParamsPerId(id); foreach (var pair in responsArray) { TemplateComponentsData.Add(pair.Key, pair.Value); } } 但在执行第一行时出现以下错误: 无法在ServiceModel客户端配置部分中找到引用合同“ServiceReference.GetTemplateParamSoap”的默认端点元素。 这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素。 我错过了什么? 2)我将asp.net proj和asmx从一个域迁移到另一个域。 有没有办法相对引用这个webservice?

从64位exe访问32位DLL的方法

我有一个项目必须编译并以64位模式运行。 不幸的是,我需要调用一个仅在32位模式下可用的DLL,因此我无法在一个Visual Studio项目中容纳所有内容。 我正在努力找到将32位DLL包装在自己的exe / service中的最佳方法,并从我的64位应用程序发出远程(尽管在同一台机器上)调用该exe / service。 我的操作系统是Win7 Pro 64位。 对这个32位进程的所需调用是每秒几十次,但数据量很小。 这是一个实时图像分析应用程序,因此尽管音量低,响应时间仍然很重要。 大量发送/接收单个基元。 理想情况下,我会托管一个WCF服务来容纳这个DLL,但在64位操作系统中,不能强制服务作为x86运行! 来源 。 这真是不幸,因为我在我的机器上对WCF服务的调用时间仅为4毫秒。 我已经尝试过命名管道.net。 我发现它们比WCF慢40-50倍(对我来说无法使用)。 任何其他选择或建议,以最好的方式来解决我的难题?

DateTime.AddDays()无法按预期工作

我有这个简单的程序: DateTime aux = new DateTime(2012, 6, 12, 12, 24, 0); DateTime aux2 = new DateTime(2012, 6, 12, 13, 24, 0); aux2.AddDays(1); Console.WriteLine((aux2 – aux).TotalHours.ToString()); Console.ReadLine(); 我调试了这个并找到了aux2.AddDays(1); 似乎不起作用,我在这里缺少什么? 它应该返回25,但答案是一个。 问题是什么? 另外AddHours不起作用,我猜其他人也不行。

将pdf文件发送到打印机 – 打印pdf

我正在使用Visual Studio 2010(C#)编写Web应用程序。 我想在单击按钮时将PDF(保存在我的电脑中)发送到打印机。 为了创建PDF,我使用了iTextSharp。 我尝试过这个,但它只是打开Adobe Reader: proc.StartInfo.FileName = @”C:\Archivos de programa\Adobe\Reader10.0\Reader\AcroRd32.exe”; proc.StartInfo.Arguments = String.Format(@”/p /h {0}”, pdfFileName); proc.StartInfo.UseShellExecute = false; proc.StartInfo.CreateNoWindow = true; proc.Start(); 先感谢您!!!

部署到“C:\ Program Files \ …”后,我的应用程序无法更新Access数据库

我已经部署了我的应用程序以备另一个用户(另一台计算机)使用,但是当我尝试将数据添加到数据库时,我得到了错误 操作必须使用可更新的查询 错误是这样的(这是我已经部署我的程序并在应用程序下运行,而不是在Visual Studio下运行): 但它在视觉工作室下运行得很好,像这样的图像(注意,一旦我点击提交按钮,它就应该存储在数据库中,并将其显示在datagridview上,如下图所示): 而且我还有另一个问题,删除function没有运行,添加和删除错误出现在我部署我的程序后,但我会在另一个线程上发布。 我该如何解决这个问题?

显示启动图片

当我的应用程序启动时,我们怎么能显示启动画面,因为每个软件如Photoshop,vs word等? 我计划将其粘贴在表格上,然后显示它,但有顶部的蓝色条,有控制等任何想法/

单击WebBrowser控件内的HTML链接

C#Visual Studio 2010 我正在将一个复杂的html页面加载到webbrowser控件中。 但是,我没有能力修改网页。 我想从Windows窗体自动单击页面上的链接。 但是,每次加载页面时,ID似乎是随机生成的(因此我认为引用ID不起作用)。 这是一个href链接的内容: <a id=”u_lp_id_58547″ href=”javascript:void(0)” class=”SGLeftPanelText” onclick=”setStoreParams(‘cases;212’, 212); window.leftpanel.onClick(‘cases_ss_733’);return false; “> My Assigned 无论如何点击C#中的链接? 谢谢! 更新: 我觉得这很接近,但它不起作用: HtmlElementCollection links = helpdeskWebBrowser.Document.Window.Frames[“main_pending_events_frame”].Document.GetElementsByTagName(“a”); MessageBox.Show(links.Count.ToString()); 我已经尝试插入每个帧名称并在TagName字段中尝试了“a”和“A”,但是没有任何运气。 我找不到任何链接; 消息框始终为0.我缺少什么?