Tag: exception

将行号添加到在发布模式下部署的ASP.NET网站的堆栈跟踪

我正致力于维护一个Web应用程序,该网站也具有错误日志function。 我的客户偶尔在网站上遇到一些问题,该问题也记录在错误日志文件中,但它只显示了在堆栈跟踪中发生exception的方法调用层次结构。 当我在Dev环境堆栈上显式引发exception时,exception的跟踪显示方法调用层次结构及其实际exception发生的行号。 我知道在生产中我们只部署DLL,这就是我们没有在日志文件中获取错误行号的原因。 任何人都有任何想法如何只在我们部署DLL(程序集)时才能获得错误行号?

添加新数据源对话框期间新连接失败

问题 如果我安装了Visual Studio 2010,Service Pack 1,并转到数据,添加新数据源并单击数据库,则会打开标准的“选择数据连接”向导页面。 在该页面上,如果我已配置现有连接,我可以选择它,并将该数据源添加到我的项目,没有问题,没有问题。 另一方面,如果我单击New Connection …它只是炸弹,向导关闭,好像我什么都没做。 现在请记住,Visual Studio不会关闭,并且没有exception,错误或警告,对话框窗口就会消失。 不成功的尝试解决问题 我已经检查过简单的东西,使用调试器和有效的机器配置文件,不确定我可能缺少什么。 使用调试器 我尝试启动Visual Studio的第二个副本,并将调试器附加到进程,在我的调试菜单中检查了所有exception,但仍然没有。 validationmachine.config文件是否有效 我备份了我的machine.config文件,并使用了另一个人的工作机器的machine.config文件,我仍然遇到问题。 我已经恢复到我自己的machine.config文件。 我怀疑machine.config可能是问题,但我认为一个工作的应该工作,除非我错过了一个注册的提供商? 我不知道这个向导在幕后如何工作,或者machine.config文件的哪些部分/行完全驱动向导。 卸载所有第三方数据库提供程序 我最近尝试卸载Oracle,SQLite,测试版的SQL Server Compact Edition和MySQL提供程序,希望其中一个设置一个注册表项或配置项,这会对我创建新连接的能力产生负面影响,但仍然会出现错误。 重新安装Visual Studio 我重新安装了Visual Studio,完全卸载,并重新安装,没有扩展,或者什么也没有,并且问题存在,当然确信它的配置错误,我可以使用有关幕后配置的更多人的专家意见这个对话虽然。 任何帮助解决问题将不胜感激。

Dictionary 的神秘行为

我正在开发一个基于Asp.net MVC 3.0并使用Mono-2.10.8(Windows 7)的庞大系统。 一切都很好,直到几天前。 在我的API中,我有几个使用词典的实用程序类。 例如,像这样: public static class KeyUtility { static KeyUtility() { Alphabet = new[] { ‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘P’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘X’, ‘Y’, ‘Z’, ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ }; ReverseAlphabet = Alphabet […]

捕获/修改(消息)/ Rethrow相同类型的exception

我想要一个中心位置从exception中提取信息,将所需的所有信息设置为其message参数,然后将该信息重新抛出为相同类型的exception。 更好的解决方案可能是在最终处理exception的地方执行此操作(并记录其消息),但是..我可以控制抛出exception的地方,而不是接收exception的地方记录其消息内容。 除了那个设计决定,并且假设该消息是一个只读属性,我会(?)以某种方式创建一个新的Exception对象,有没有办法使新的exception对象与原始exception对象的类型相同? 这是我的代码,它不能编译 – 它在throw行(我尝试动态转换对象)时偶然发现。 public static void RethrowExceptionWithFullDetailInMessage(string msg, Exception ex) { Exception curEx = ex; int cnt = 0; while (curEx != null) { msg += “\r\n”; msg += cnt++ + ” ex.message: ” + curEx.Message + “\r\n”; msg += “Stack: ” + curEx.StackTrace; curEx = curEx.InnerException; } object newEx = Convert.ChangeType(new […]

UnhandledException事件不起作用?

我正在编写一个小型库来捕获所有未处理的exception,显示一个小对话框(类似于NF的常用对话框),它使用户有机会将exception发送给开发人员。 为此,我使用AppDomain的UnhandledException-Event,如下所示: app.UnhandledException += (object sender, UnhandledExceptionEventArgs e) => { ExceptionHandler handler = new ExceptionHandler((Exception)e.ExceptionObject, ExEntry); UnhandledExceptionListened(handler); if (Properties.Settings.Default.ShowStandardExceptionDialog) { ExceptionDialog exdialog = new ExceptionDialog(handler); exdialog.ShowDialog(); } }; ExceptionHandler和ExEntry是我的库的类。 但是:如果发生exception,编译器跳转到我的Lambda-Expression,尝试调试第一行代码,然后显示之前发生的错误,而不用处理lambda的其余部分。 但如果我只写: app.UnhandledException += (object sender, UnhandledExceptionEventArgs e) => { ExceptionDialog exdialog = new ExceptionDialog(handler); exdialog.ShowDialog(); }; 它完美地运作。 有谁知道为什么这不起作用?

测试sql连接而不抛出exception

要测试我是否可以连接到我的数据库,我执行以下代码: using (SqlConnection connection = new SqlConnection(myConnectionString)) { try { connection.Open(); canConnect = true; } catch (SqlException) { } } 除非在连接失败时抛出exception,否则此方法有效。 有没有其他方法来测试不抛出exception的Sql连接? 编辑:为了增加精度,我问是否有一个简单的方法可以做到这一点,而无需打开连接并捕获可能发生的exception

多次指定不变名称System.Data.SqlClient的提供程序

我将entity framework更新为6.0,现在我得到一个我无法弄清楚的exception。 为entityFramework创建配置节处理程序时发生错误:在应用程序配置中多次指定了不变名称“System.Data.SqlClient”的提供程序。 对于每个已配置的提供程序,不变名称必须是唯一的。 (C:\ inetpub \ wwwroot \ scrape \ Scrape \ web.config第106行) ‘System.Data.Entity.Internal.AppConfig’的类型初始值设定项引发了exception。 web.config没有多次列出提供程序,我只有一个web.config用于整个项目。 我很感激任何帮助。 堆栈跟踪 在System.Data.Entity.Internal.AppConfig.get_DefaultInstance() 在System.Data.Entity.Internal.LazyInternalConnection..ctor(String nameOrConnectionString) 在System.Data.Entity.DbContext..ctor(String nameOrConnectionString) at Scrape.Data.Contexts.ScabsContext..ctor()in c:\ inetpub \ wwwroot \ scrape \ Scrape.Data \ Contexts \ ScabsContext.cs:第17行 at Scrape.Data.Repositories.ScabStore..ctor()in c:\ inetpub \ wwwroot \ scrape \ Scrape.Data \ Repositories \ ScabStore.cs:第15行 at Scrape.Api.Controllers.ScabsController.get_store()在c:\ inetpub \ […]

“无法加载文件或程序集’XXX.YYY’或其依赖项之一。 该系统找不到指定的文件。”

我有一个.net visual studio解决方案,包含许多项目(类库和Web应用程序)。 我做了一些refractoring,它在项目之间移动文件,创建新项目,删除未使用的项目,并重命名一些现有项目。 解决方案构建没有问题,但是当我运行Web应用程序时,会发生以下exception: “无法加载文件或程序集’XXX.YYY’或其中一个依赖项。系统找不到指定的文件。” 这个名为XXX.YYY的项目在refractoring中删除了一个名为XXX.YYY的dll。 但这不适用于应用程序中的任何位置。 我删除了web应用程序obj目录和bin文件夹并重建但仍然会发生。 任何人都有任何想法,这可能发生,任何提示? 更新: 更新我的问题。 我将代码放在另一台计算机上并从那里运行它,它构建并成功运行,没有出现此问题。 所以这让我觉得问题在于我的PC而不是代码库。 也许我的电脑上有缓存的东西。 我确实在“C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files”中删除了我的临时文件,但没有运气。 所以其他任何可能被缓存或任何其他原因在我的PC上发生。 进一步更新 关于此的另一个更新。 我在其他开发人员机器上运行了相同的代码,并没有运行它的问题。 所以一定要在我的机器上做点什么! 我们机器上唯一不同的是我在经典模式下使用应用程序的应用程序池运行IIS7。 另一个开发人员正在运行IIS6。 2件新信息。 首先在我的web.config中的httpmodules中,我必须在添加之前删除自定义的http模块。 其他开发人员不必这样做。 其次,我已经能够修复“无法加载文件或程序集’XXX.YYY’或其中一个依赖项”问题通过“hack”,这只是一个短期修复,通过在我的项目中创建一个名为XXX的类库.YYY并包括要查找的类,这些都是自定义控件,即。 inheritance自System.Web.UI.WebControls.WebControl。 还有什么想法……

Linq,XmlNodes,foreach和例外

请考虑以下代码: using System; using System.Collections.Generic; using System.Linq; using System.Xml; using System.Xml.Linq; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(@” “); XmlNode root = xmlDoc.DocumentElement; List disabledNodes = new List(); try { foreach (XmlNode node in root.ChildNodes.Cast() .Where(child => child.Attributes[“disabled”] != null && Convert.ToBoolean(child.Attributes[“disabled”].Value))) { Console.WriteLine(“Removing:”); Console.WriteLine(XDocument.Parse(node.OuterXml).ToString()); […]

查找VS输出窗口中显示的exception源

在VS2013中运行我的应用程序时,我得到例外: mscorlib.dll中发生了’System.InvalidOperationException’类型的第一次机会exception 和 mscorlib.dll中发生了’System.InvalidOperationException’类型的第一次机会exception 由于我的应用程序没有崩溃,一切都正常“正常”,因此可以捕获此exception。 但我真的想找到导致此exception的代码部分来解决这个问题。 我该怎么做才能找出我的代码的哪一部分抛出此exception或它发生的位置。 有没有办法在VS中显示/可视化? 调试器选项?