Tag: 托管

内存泄漏问题:处置或不处置托管资源?

我在计算昂贵的基于内容的图像检索(CBIR).NET应用程序中遇到奇怪的内存泄漏 概念是有一个带有线程循环的服务类,它捕获来自某些源的图像,然后将它们传递给图像标记线程以进行注释。 服务类以指定的时间间隔从存储库中查询映像标记,并将其存储在其内存缓存(字典)中,以避免频繁的数据库命中。 该项目中的类是: class Tag { public Guid Id { get; set; } // tag id public string Name { get; set; } // tag name: eg ‘sky’,’forest’,’road’,… public byte[] Jpeg { get; set; } // tag jpeg image patch sample } class IRepository { public IEnumerable FindAll(); } class Service { private IDictionary […]

将现有WCF项目更改为Azure项目

我有一个有效的WCF服务。 我想在Windows Azure上部署它。 托管现有的WCF服务在Azure上编写,我应该右键单击项目并选择一个选项。 但我的菜单中没有这样的选项。 对于哪些类型的项目,我可以使用上面提到的右键单击进行此类转换?

从C ++托管的dll抛出的C#exception – EEFileLoadException * __ptr64

我从正常的C#控制台程序中得到此错误,该程序正在使用作为C ++ CLI项目的构建输出生成的DLL。 我有一个简单的DumbThing public ref class与静态方法。 我想简单地调用该函数或至少实例化一个微小的DumbThing对象,并看到C#可以调用它从C ++ CLI生成的DLL中获取的代码,但是它没有工作,因为它抛出的错误让我更加困惑: First-chance exception at 0x000007fefd2acacd (KernelBase.dll) in DumbTest.exe: Microsoft C++ exception: EEFileLoadException * __ptr64 at memory location 0x007fc228.. 更新:在原始exception之下,还有另一个第一次机会exception: First-chance exception at 0x77cace3b (ntdll.dll) in DumbTest.exe: 0xC0000005: Access violation reading location 0xffffffffffffffff. 一位同事向我指出,这可能是一个编译时问题(一些选项),但我没有任何可能导致它的线索。 有谁可以提供一些起点提示?

用于在Windows上创建快速,现代和响应式GUI的C ++ / CLI或C#

目前我分为这两种语言。 我几乎已经编程了当前应用程序的一半,这需要非常快。 它可以在多种负载条件下计算任何类型的绝缘玻璃结构。 我只是不知道它是否是用C ++ / CLI编写它的正确选择。 例如,在互联网上,我甚至从未读过“C ++ / CLI”的名称,但每个人都建议学习C#。 C ++ / CLI的真正缺点是什么? 我从阅读中得知,未来几年它注定会被弃用。 这是真的? 如果有一些,它们是如此糟糕,真的有必要切换到C#? 目前针对C#的唯一一件事就是我有C代码需要访问,而且由于安全问题和黑客攻击,我无法创建.Dll。 (该计划将非常昂贵) 为了编写在Windows上运行的快速GUI(还有3D动画和多核甚至图形核心处理),我还有什么其他机会?

读取用户会话时出现NULL引用exception(reflection)

我已经使用引用阅读所有用户会话实现了用于读取活动会话的代码,并获取了ASP.NET中所有活动会话的列表 。 Private List getOnlineUsers() { List activeSessions = new List(); object obj = typeof(HttpRuntime).GetProperty(“CacheInternal”, BindingFlags.NonPublic | BindingFlags.Static).GetValue(null, null); object[] obj2 = (object[])obj.GetType().GetField(“_caches”, BindingFlags.NonPublic | BindingFlags.Instance).GetValue(obj); for (int i = 0; i < obj2.Length; i++) { Hashtable c2 = (Hashtable)obj2[i].GetType().GetField("_entries", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(obj2[i]); foreach (DictionaryEntry entry in c2) { object o1 = entry.Value.GetType().GetProperty("Value", BindingFlags.NonPublic | […]

捕获EngineExecutionException

我有一个包含托管代码和本机代码的应用程序。 应用程序当前有一个未处理的exceptionfilter,通过SetUnhandledExceptionFilter设置,它捕获任何严重错误,生成一个小型转储,记录各种应用程序参数,并退出程序。 未处理的exception处理程序不会捕获在.NET运行时中发生的EngineExecutionException。 我们怀疑问题是由应用程序的本机部分导致的内存损坏。 问题是,当exception发生时,应用程序只是退出而没有跟踪。 当发生这种情况时,我们想记录一个小型转储。 有谁知道我们的应用程序如何安装一个能够捕获它的处理程序?

如何在托管C ++中使用typeof(int)?

我现在正在开发一个项目,其中一部分使用托管C ++。 在托管C ++代码中,我正在创建一个DataTable。 在为数据表定义Columns时,我需要指定列的类型。 在C#中,这将: typeof运算(INT) 但是我如何在托管C ++中做到这一点? 谢谢!

使用托管代码包装程序从64位托管代码调用32位非托管代码的最佳方法

我需要从托管的64位进程调用本机32位代码的情况越来越频繁,因为64位计算机和应用程序变得普遍。 我不想将我的applciation标记为32位,我无法获得正在调用的64位版本的代码。 我目前使用的解决方案是创建C ++ COM填充程序,这些填充程序在进程外加载以从64位进程进行32位调用。 这个COM填充程序解决方案运行良好,跨进程调用由COM在幕后处理,这最大限度地减少了这种方法的开销。 但是,我想保留我们使用C#进行的所有新开发,并想知道是否有任何框架可以最大限度地减少执行此操作的开销。 我看过IPCChannel,但我觉得这种方法并不像COM shim解决方案那样整洁。 谢谢,艾德

如何在IIS 7.0中托管MVC应用程序?

我创建了一个MVC应用程序,它在本地主机上运行良好。 我使用visual studio将项目发布到本地文件夹并将其上传到FTP位置。 但在服务器上它不工作。 我按照了几个教程但没有结果http://haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx http://www.hanselman.com/blog/IntegratingASPNETMVC3IntoExistingUpgradedASPNET4WebFormsApplications.aspx 有一些很好的教程或有人可以帮助吗? 谢谢

通过提供其PATH名称来搜索公用文件夹中的文件夹

是否可以通过使用Exchange Web服务(EWS)托管Api提供文件夹的路径来搜索公用文件夹中的所有文件夹和文件夹?