草庐IT

C++异常安全

全部标签

c# - 具有上限的线程安全集合

我正在寻找具有以下属性的集合:threadsafe:将在asp.net中使用,多个客户端可以同时尝试添加、删除和访问成员ma​​xelements:我希望能够在构造时设置一个上限,最大元素数TryAdd:一种与BlockingCollection.TryAdd(T)相同的方法将是完美的,即如果已达到最大元素数,它将返回false类似字典:在大多数其他方面是ConcurrentDictionary将是完美的,即能够通过键识别元素,删除任何项目(不仅仅是第一个或最后一个,我认为这将是BlockingCollection的限制)在尝试自己动手之前,我的问题是:我是不是错过了一个可以对集合中的

c# - 文件上传安全问题

我有一个可供公众使用的Web表单,它具有文件上传功能。现在文件要么保存在网络服务器上,要么作为电子邮件附件发送出去。我们对大小有限制,即15MB和上传文件的扩展名。我们的SMTP服务器位于同一网络服务器上。我担心安全问题,因为任何人都可以上传恶意文件并对我们的生产Web服务器产生影响。这种公开的文件上传控制对我有什么风险?是否有人可以通过上传恶意文件在Web服务器上执行恶意脚本。我做了一些研究,发现了以下几点如果我在电子邮件中将文件作为附件发送,该文件将临时存储在临时ASP.Net文件夹中,一旦发送电子邮件,该文件就会被删除。您可以在将文件保存到文件系统之前重命名文件。您可以将文件保存

c# - SignalR 安全

我是SignalR的新手,但我很好奇它的安全性。例如,我创建了以下方法来向所有用户发送消息,如下所示:publicclassNotificationHub:Hub{publicvoidSend(stringmessage){Clients.All.broadcastMessage(message);}}SignalR在js文件(集线器)中生成以下方法:proxies.notificationHub.server={send:function(message){returnproxies.notificationHub.invoke.apply(proxies.notificationH

c# - 在 ContinueWith 中观察任务异常

有多种方法可以观察任务中抛出的异常。其中之一在ContinueWith和OnlyOnFaulted中:vartask=Task.Factory.StartNew(()=>{//Throwsanexception//(possiblyfromwithinanothertaskspawnedfromwithinthistask)});varfailureTask=task.ContinueWith((t)=>{//Flattenandloop(sincetherecouldhavebeenmultipletasks)foreach(varexint.Exception.Flatten().

c# - 如何在没有 "process has exited"异常的情况下终止进程?

我使用Process.Kill()来终止进程。像这样:if(!process.WaitForExit(5000)){process.Kill();}有时进程会在两行之间退出,所以控制会进入if然后Kill会产生异常:System.InvalidOperationExceptionCannotprocessrequestbecausetheprocess(ProcessIdHere)hasexited.atSystem.Diagnostics.Process.GetProcessHandle(Int32access,BooleanthrowIfExited)atSystem.Diagno

c# - 加载程序集 Xamarin.Android.Support.v4 时出现异常

我正在使用Xamarin.Forms开发visualstudio,我收到以下错误:Exceptionwhileloadingassemblies:System.IO.FileNotFoundException:Couldnotloadassembly'Xamarin.Android.Support.v4,Version=1.0.0.0,Culture=neutral,PublicKeyToken='.Perhapsitdoesn'texistintheMonoforAndroidprofile?Filename:'Xamarin.Android.Support.v4.dll'atXam

c# - 在代码中使用 '"using"关键字时,我应该在哪里捕获异常?

哪个在结构上更好?classProgram{staticvoidMain(string[]args){try{using(Foof=newFoo()){//somecommandsthatpotentiallyproduceexceptions.}}catch(Exceptionex){Console.WriteLine(ex.Message);}}}或者...classProgram{staticvoidMain(string[]args){using(Foof=newFoo()){try{//somecommandsthatpotentiallyproduceexceptions.

c# - 防止来自 3rd 方组件的异常使整个应用程序崩溃

我正在编写一个依赖于某些第三方DLL的多线程应用程序。我的问题是,当使用第三方库中的对象时,如果它在运行时引发异常,我无法捕获它并且它会冒泡并杀死整个应用程序。我有许多不同的线程,每个线程都使用来自第三方库的自己的对象,我需要使用该对象副本的线程能够捕获和处理异常。根据我所读到的内容,似乎第3方库实际上正在创建自己的线程并允许未捕获的异常。.NET2.0+行为允许这些异常终止整个应用程序。我知道AppDomain.CurrentDomain.UnhandledException,但这不允许您阻止应用程序关闭。作为引用,我正在.NET4.0中编写一个控制台应用程序。有没有人有任何解决方案

c# - 尝试从 WinJS 读取 C# WinRT 组件中的空字符串时出现异常

我有以下场景:C#中的数据库编译为Windows运行时组件。它的一个类是这样的:publicsealedclassMyData{stringTheGoods{get;privateset;}}UI在WinJS中,我有以下内容:varb=dataInstance.theGoods;问题是我得到一个异常并且属性中包含以下内容:System.ArgumentNullException异常在System.StubHelpers.HStringMarshaler.ConvertToNative(字符串管理)查看HStringMarshaler.ConvertToNative的实现,如果字符串为n

c# - C# .NET 中的 UTF-16 安全子字符串

我想得到一个给定长度的子字符串,比如150。但是,我想确保我不会切断unicode字符之间的字符串。例如看下面的代码:varstr="Hello?world!";varsubstr=str.Substring(0,6);此处substr是无效字符串,因为笑脸字符被切成两半。相反,我想要一个执行以下操作的函数:varstr="Hello?world!";varsubstr=str.UnicodeSafeSubstring(0,6);其中substr包含“Hello?”作为引用,以下是我在Objective-C中使用rangeOfComposedCharacterSequencesForR