小编Ach*_*him的帖子

在项目模板中使用IWizard而无需在GAC中安装程序集?

我想创建一个包含向导(IWizard界面)的自定义项模板.

http://msdn.microsoft.com/en-us/library/vstudio/ms171411%28v=vs.100%29.aspx和其他一些地方,总是描述包含向导的程序集必须安装在GAC中.我想在我的组织中分发我的模板,并不是每个人都有权在GAC中安装任何内容.

所以我想知道,有没有办法在模板zip或vsix文件中包含包含向导代码的程序集?

在我看来,这应该是一个常见的问题?

任何帮助如何在没有任何GAC安装的情况下分发自定义向导和项目模板?

templates wizard visual-studio-2010 visual-studio

11
推荐指数
1
解决办法
2799
查看次数

HandleError与ProvideFault工作流服务不一致,如何处理?

在我们的WF4工作流服务中,我们尽量保持健壮.我们做的一件事就是在HandleError和ProvideFault(IErrorhandler)中记录错误.文档清楚地说明HandleError是进行日志记录的正确位置,但我发现有些奇怪的事情发生了:

  1. 我看到一些错误只触发ProvideFault,但从来没有HandleError,一个例子是:

    System.NullReferenceException:未将对象引用设置为对象的实例.在System.ServiceModel.Activities.Dispatcher.DurableInstanceManager.GetInstanceAsyncResult.GetInstance()at System.ServiceModel.Activities.Dispatcher.DurableInstanceManager.GetInstanceAsyncResult..ctor

  2. 还有一些错误只触发HandleError,但从不提供ProvideFault,一个例子是:

    System.ServiceModel.CommunicationException:从管道读取错误:管道已结束.(109,0x6d).在System.ServiceModel.Channels.PipeConnection.Read(Byte []缓冲区,Int32偏移量,Int32大小,TimeSpan超时)处于System.ServiceModel.Channels.SessionConnectionReader.Receive(TimeSpan超时)

  3. 最后有错误触发两者,首先是ProvideFault,然后是HandleError(在后台线程上)

  4. 如果可能的话,我也想记录相应的传入消息.我使用OperationContext.Current.RequestContext.RequestMessage.ToString()执行此操作这通常只适用于ProvideFault,在HandleError中我们不再有RequestContext

所以我的结论是,要记录所有错误,我必须登录这两种方法.但由于3 ..这导致了大量重复的日志条目.

我目前的解决方法是"记住"来自ProvideFault的最后一个记录的异常,如果相同的异常进入HandleError则忽略它.看起来不是很干净.

有没有人能够更好,更可靠地记录WF服务中可能发生的所有错误?

请不要指向使用HandleError或ProvideFault中的IErrorHandler在WCF中记录异常?因为这没有提供任何帮助.

wcf workflow-foundation-4

8
推荐指数
1
解决办法
674
查看次数