在Silverlight 4应用程序中;这个错误是什么意思?:错误HRESULT E_FAIL已从调用COM组件返回
“错误HRESULT E_FAIL已从调用返回到COM组件。”
这是一个非常普遍的错误。调试时,VS调试器没有指向错误的确切位置。
在Silverlight 4应用程序中;这个错误是什么意思?:错误HRESULT E_FAIL已从调用COM组件返回
“错误HRESULT E_FAIL已从调用返回到COM组件。”
这是一个非常普遍的错误。调试时,VS调试器没有指向错误的确切位置。
我有这个错误使用当前的SL4 Telerik控件。有类似的问题已被报道here与各种解决方案。这个问题似乎与Expression Blend管理控件缓存的方式有关。
此问题的大部分原因与组件设计上的依赖属性有关。 你只是在设计上面对这个问题。
破损很简单,但需要时间:)清理项目并重建所有。当你再次进入设计时,你应该看到一切都很好!
我希望这有助于!
如果您最近看到此异常,请尝试重新安装silverlight sdk4。
我认为OP(作为我自己)在运行时遇到问题,而不是设计时间。 – jv42 2012-04-20 13:00:10
你是对的一个通用的错误。如果你做设备相关的事情。也许在发布模式下运行项目解决了这个问题。它有时在调试模式下失败。只需使用Ctrl + F5运行它。如您所说,它是一个非常常见的错误,其中一些列在这里http://msdn.microsoft.com/en-us/library/windows/desktop/aa378137%28v=vs.85% 29.aspx – 2012-04-23 08:20:16
不,我在发布代码中失败了。这是在本机代码中的一些媒体播放。 – jv42 2012-04-23 08:44:56
这是一个安全和权限问题。查看IIS并确保集成安全性处于开启状态。然后将应用程序保护级别设置为中(如果它高,那么这可能是结果)。然后检查你的Web.Config文件。确保模拟关闭。
这应该有所帮助。
我也有这个错误,我发现这个问题是有关没有添加所有请求的程序集到您的项目。在我的情况下,我使用一个UserControl与Silverlight工具包依赖,我没有添加此引用。 我刚刚添加了参考和一切解决:)
这里有一种方法来产生这个错误,我今天偶然发现。我们在XAML以下按钮:
<Button x:Name="button" Click="Button_Click" Content="Click me" />
事件处理程序处理该按钮的Click
事件如下:
private void Button_Click(object sender, RoutedEventArgs e)
{
button.Margin = new Thickness(0, double.NaN, 0, 0);
}
当我按一下按钮我收到上述错误。如果我用PositiveInfinity
或NegativeInfinity
替换NaN
,则会出现相同的错误。
有趣的是,如果Thickness
构造函数的第一个参数包含NaN
而不是第二个参数,我会得到不同的错误消息。
这是一个古老的问题,但我想我会给我的答案,因为我发现这个线程谷歌搜索完全相同的问题。
在我的情况下,我从网上复制了一些示例XAML以开始使用Silverlight Toolkit 4.该示例XAML包含一个简单的按钮,其中包含一个与事件处理程序无关的简单按钮,我的代码在后面。起初,我没有注意到这个简单的问题,因为编译器没有给我一个错误消息,我刚刚在运行时看到上面的错误HRESULT E_FAIL已经从调用COM组件的消息中返回。只有当我将我的示例XAML复制到一个全新的Silverlight应用程序中,而没有任何其他内容时,实际的底层问题才会在编译时显示出来。因此,如果你在运行时得到了相同的错误信息,我的建议是仔细检查你的XAML是否有任何错误,你应该在编译时选择这些错误,但是由于某种原因最终导致了错误上面提到的运行时错误。为了进行调试,您可以执行我所做的操作,并将独立Silverlight应用程序中导致错误的代码与没有其他内容的代码隔离开来,并查看是否像我一样获得更有用的错误消息来指导您。
HTH。
这个问题不会有一个简单的答案。你需要仔细检查一切,并寻找incosistancies。 – RaoulRubin 2011-12-16 14:46:55
我从XAML的问题中得到了这个错误。奇怪的是我缺少Style
和Margin
属性使用的资源 - 这意味着应用程序运行正常,甚至resharper只报告'提示'。
一旦我清理了这些问题,我的“错误HRESULT E_FAIL已经从调用COM组件返回。”消失了。正如其他人所说,这是一个模糊的错误,非常难以调试。在这种情况下,我继承了一个拥有100个VS和ReSharper消息并具有不同严重性的大型项目 - 在Style
上缺少StaticResource
属性不是我检查的第一个地方!
我有这个问题,而我是编码实时视频和音频(使用微软Expression)和下一段代码抛出异常随机:
// Set bitrate
liveJob.OutputFormat.VideoProfile.Bitrate = new ConstantBitrate(2500);
// Set Video size
liveJob.OutputFormat.VideoProfile.Size = new Size(320,240);
,直到我已经想通了,第二行将引发异常,而第一行仍在另一个线程中运行!
,当然,这是我的错 - 我叫代码的方法,并且它也被Click事件称为...
在我的情况:
我创建了一个
class MyControl : ContentControl {
}
默认情况下,这个类是不公开的和XAML无法加载它,并抛出异常
错误HRESULT E_FAIL有蜜蜂n从呼叫返回到COM组件
只是将类的范围更改为public并且错误消失。
希望得到这个帮助。
PS。微软应该提供更多的信息,而不仅仅是抛出一个神秘的错误消息而没有任何堆栈跟踪。
我在我的xaml页面出现了这个错误,并且没有语法错误。清理和重建项目解决了我的问题。 fyi ...
我有这个例外,疯了。我建议你检查一下,如果你最近安装了一个可能有冲突的命名空间项目的组件。在我的情况下,我安装了windows手机工具包,其中的项目与Windows Phone上的股票工具包类似。 Asap我从Nuget包管理器中卸载了这一切,一切恢复正常。
这是试图用MICROSOFT.TEAMFOUNDATION库查询的Team Foundation Server时,什么时候最终确定这个问题我们:
DTC配置----
我希望这会有所帮助。
对我来说,这是一个XAML解析错误。在数据模板,我有一个额外的小号两者之间的标记(可能是因为我按下小号,而不是CTRL +小号)。例如...
<DataTemplate>
<Border/>s
</DataTemplate>
所以,我建议你在显示时会导致此异常的观点寻找格式不XML。
IIS应用程序池必须作为具有对Team Foundation Server的查询访问权限的帐户运行。这为我解决了这个问题。
我的问题是缺少风格。我已经覆盖的控制模板,自定义画笔,像这样:
<Style x:Key="MyCustomStyle" TargetType="Thumb">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Thumb">
....
<TextBlock Foreground="{StaticResource MyCustomBrush}"
和失踪我MyCustomBrush的定义,像这样:
<SolidColorBrush x:Key="MyCustomBrush" Color="#FFAC0909"/>
然后BOOM,应用程序没有启动和我该COM错误消息。
嗯,我几乎要吃我的电脑.. 最后,我发现问题是,我可能会通过事件删除一个参数的XAML页面中的Image对象的一个边距设置,orz ..
Margin="0,-20,0"
这应该是
Margin="0,-20,0,0"
很显然,我没有意识到我曾经修改了XAML的东西,所以我一直在后面的代码为故障排除“一会儿” ..
幸运的是,我发现这篇文章并重新检查了一切,包括XAML页面..那是...东西...
这个错误似乎是一个'全部'的错误,否则没有给出具体的定义或跟踪,尤其是那些与外部Xaml代码相关的问题。
在我的特殊情况下,名称空间似乎存在问题。我的UserControl在它自己的命名空间(创造性地命名为“UserControls”)。我的页面在他们自己的名称空间(“页面”)。我想从UserControl中引用Pages命名空间中的枚举定义,因此我只是添加了一个using语句:using MySolution.Pages;
。琐碎,我不想相信这是问题所在。但是,当我删除使用语句,并简单地在我的UserControls命名空间创建枚举,瞧,没有更多的HRESULT错误,作为额外的奖励,我在UserControl中定义的依赖属性,否则神秘地不显示在Xaml intellisense ,突然在那里并准备好使用。
我怀疑在我的情况下,这个原因是某种循环引用问题。而且由于没有更多的特定错误可以将这些信息与我联系起来,因此只需将其转换为HRESULT E_FAIL Com错误。
对于我来说,我将其缩小到一个SplitButton控件,我从CodePlex很久以前就下载了它。我已经将解决方案从Silverlight 4升级到Silverlight 5,并因此出现了这个错误。我能够通过注释掉XAML将它缩小到所有控件,然后通过一个注释去掉,这回一个,直到错误再次appreared:
System.Reflection.TargetInvocationException was unhandled by user code Message=Exception has been thrown by the target of an invocation. StackTrace: at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) at System.Delegate.DynamicInvokeImpl(Object[] args) at System.Delegate.DynamicInvoke(Object[] args) at Homexaml_3.BindingOperation(Object BindingState, Int32 , Action) InnerException: Message=Error HRESULT E_FAIL has been returned from a call to a COM component. StackTrace: at MS.Internal.XcpImports.CheckHResult(UInt32 hr) at MS.Internal.XcpImports.UIElement_Measure(UIElement element, Size availableSize) at System.Windows.UIElement.Measure(Size availableSize)
什么固定它被手动删除过时的参考资料System.Windows.Control然后将System.Windows.Controls.Toolkit从Silverlight 5 SDK文件夹中重新添加。
希望它可以帮助某人(并帮助我!)如果它在几个月后再次发生。
我最近在VS 2013中为Silverlight 5项目收到了这个错误。以上都不适合我。奇怪的是,这是一个线程问题(通常我习惯于解释这个例外,如果我试图在后台线程上错误地创建UIElements)。
包装我的代码,添加UIElements到MainPage与分派器。BeginInvoke的解决了这个问题:
Dispatcher.BeginInvoke(() =>
{
// your code
});
我通过删除XAML文件解决了这个错误,并添加从添加新项目一个新的。然后我粘贴旧文件中的XAML代码。
大多数时候很难看到问题出现在哪里,尤其是在XAML中。 另一种方法来找出它的失败是执行以下步骤
在这个时间点,你有两个选择,
点击显示异常屏幕查看详情。深入探究 的内部例外情况,直到您从 的起始位置得到线索。
查看调用堆栈以查看您的哪个代码行导致 此例外。这将提供解决问题的线索。
解决方法有很多在那里,但这个仅仅是工作多次为me.It已经尝试了VS2012 VS2013和VS2015的解决方案,我觉得工作all.Just同样遵循良好步骤娄解决这个问题
第1步:关闭Visual Studio中
步骤2:删除* .csproj.user和名为.suo *文件
第3步:重新打开VS,并尝试运行项目股份公司ain进入调试模式。
注意:当多个用户在同一项目 工作与VS版本不同
.suo
文件不支持 两个VS versions.It之间往返包含哪些设置的信息 出现这种情况当前用户已经为他/她的VS工作环境选择了 环境。
在我的情况下,使用旧版本代码项目后出现此问题。它不是一开始就发生的,而是在一段时间之后。 VS GUI没有提供编辑选项,所以它变得非常不安。该程序仍然可以编译,运行和调试,只有Designer不能显示受影响的WinForm。 我按照这些步骤解决了我的问题。 _Visual Studio 2017 Community_,_.suo_文件位于: ProjectName \ **。vs ** \ ProjectName \ ** v15 ** – coarist 2017-06-18 09:21:06
就我而言,当我尝试将数据库导入到SSDT项目中时,该数据库已经在项目中,但是是空的。我刚刚用Tools -> SQL server -> New schema comparsion
更新了我的项目。源 - 数据库,目标 - 项目。比较 - 更新。
希望它可以帮助的人
这是错误的一个具体实例,但是它特别是当有一个合并字典的XAML问题发生在Silverlight中的许多情况。 – dcstraw 2011-05-10 16:40:30