Tag: workflow foundation 4

未声明’AssemblyInfoFileMask’。 由于其保护级别,它可能无法访问

我正在创建一个自定义构建tfs活动,以便在azure持续集成中使用。 我使用了这个博客的代码: http : //www.ewaldhofman.nl/post/2010/06/01/Customize-Team-Build-2010-e28093-Part-10-Include-Version-Number-in-the -build-Number.aspx 正如您可以在其公共代码下面看到AssemblyInfoFileMask。 另外请检查截图,看看我的意思,BuildDetail它在同一个类,并没有显示蓝色图标中的错误。 我会在这里粘贴代码: [BuildActivity(HostEnvironmentOption.Controller)] public sealed class GetAssemblyVersion : CodeActivity { [RequiredArgument] public InArgument AssemblyInfoFileMask { get; set; } [RequiredArgument] public InArgument BuildDetail { get; set; } protected override string Execute(CodeActivityContext context) { // Obtain the runtime value of the input arguments string assemblyInfoFileMask = context.GetValue(this.AssemblyInfoFileMask); IBuildDetail buildDetail = […]

如何在服务器重新启动时从实例存储中加载具有多个工作流定义的可运行实例

我正在评估Workflow Foundation 4或4.5,并想知道如何在服务器重启时从实例存储中加载具有多个工作流定义的可运行实例? 这是与论坛主题相同的问题: http : //social.msdn.microsoft.com/Forums/en-US/wfprerelease/thread/b8d5ed34-054a-4e55-88e1-cd430ac42110? prof= required “当使用InstanceStore.WaitForEvents时,如果任何实例准备就绪,则会引发HasRunnableWorkflowEvent事件。而且,要调用WorkflowApplication.LoadRunnableInstance(),我们需要创建一个新的WorkflowApplication,它需要正确的工作流程定义。只有1个工作流实现。但是,如果有多个类型的工作流与同一个InstanceStore相关联,并且因为HasRunnableWorkflowEvent在将由LoadRunnableInstance()加载的就绪实例上没有任何其他信息,我们无法知道我们必须为新的WorkflowApplication创建什么类型的实例。“ 但答案表明: 唯一的方法是在使用WorkflowApplication进行托管时为每个工作流定义创建单独的实例存储。 我错过了什么?

在不知道具体活动类型的情况下恢复持久化Window Workflow 4活动

我试图了解如何在不知道活动的具体类型的情况下如何恢复(加载)先前持久的WF4活动。 为了加载一个持久化的活动,我不仅需要它的workflowId (我有),但我也需要传递一个活动的实例 – 所以我需要知道它的类型: var workflowApplication = new WorkflowApplication(activity); // what type is activity? workflowApplication.Load(workflowId); 问题是它可能是许多类型中的一种 – 此活动旨在用于其他活动和工作流程:它将消息发送到消息队列,书签然后保留。 当通过消息队列接收到相应的消息时,它会恢复,但我不知道原始工作流的确切具体类型,而不检查持久性数据。 这看起来像捕获22。 我不能在不知道活动类型的情况下加载工作流程,如果不加载工作流程并检查其持久化数据,我无法知道活动类型。 我觉得我在这里遗漏了一些东西 – 有没有办法在不知道活动的情况下创建托管WorkflowActivity,或者在创建WorkflowActivity之前重新加载持久性数据以计算实际activity类型的方法?

如何编写长时间运行的活动来调用WF 4.0中的Web服务

我创建了一个执行Web请求的活动,并将结果存储到数据库中。 我发现对于这些长时间运行的活动,我应该编写一些不同的代码,以便不会阻止工作流引擎线程。 public sealed class WebSaveActivity : NativeActivity { protected override void Execute(NativeActivityContext context) { GetAndSave(); // This takes 1 hour to accomplish. } } 我应该如何重写此活动以满足长时间运行的活动的要求

试图找到Windows Workflow 4.5问题的底部

我得到的错误是 “WorkflowApplication已中止,因为Load或LoadRunnableInstance操作引发了exception。创建一个新的WorkflowApplication对象以尝试加载另一个工作流实例。” 我正在使用“workflowapplication”来运行工作流程。 我正在尝试加载的工作流实例(其中有一些)是在前一段时间创建的,并且持久存储在数据库中。 有没有办法找到在Load或LoadRunnableInstance操作期间实际抛出的exception? 我在workflowapplication对象的“aborted”事件中捕获到了这个错误,但它并没有告诉我在加载过程中抛出的错误。 新增加 我在web.config中粘贴了以下代码以获取有关上述exception的更多详细信息: 这指向了我的例外 System.Activities.DurableInstancing警告:131075: http : //msdn.microsoft.com/en-US/library/System.ServiceModel.Diagnostics.ThrowingException.aspxThrowing exception。 来源:System.Activities.DurableInstancing 4.0.0.0。 exception详细信息:System.Runtime.DurableInstancing.InstancePersistenceCommandException:名为{urn:schemas-microsoft-com:System.Activities.Persistence / command}的InstancePersistenceCommand的执行由于错误而中断LoadWorkflow。 —> System.Runtime.Serialization.SerializationException:反序列化器无法加载要反序列化的类型,因为在程序集’EntityFrameworkDynamicProxies-ConnectCore,Version = 1.0.0.0中找不到类型’System.Data.Entity.DynamicProxies.VacancyQuestionFormA_0A0432BFEF4023483E1B33251D8373454EAC6EDF2B2C6F312A4F606F45AF30E8’, Culture = neutral,PublicKeyToken = null’。 检查序列化的类型是否与要反序列化的类型具有相同的合同,并使用相同的程序集。 所以现在我的问题是如何处理被序列化的动态代理。 根据我的阅读,这些是按需的,因此不能保证在Dlls中,特别是因为我们有多个开发人员。 我们已经拥有了具有序列化代理类的工作流实例的客户端。 我的问题现在变成:Windows Workflow是否有内置的方式更加雄辩地处理序列化代理类?

WF4RC,WriteLine活动在分配给TextWriter的StringWriter上抛出错误

我是Windows Workflow [WF]的新手,并且有兴趣为业务目的评估WF。 我决定通过介绍 [TestMethod] public void TestMethod () { TextWriter writer = new StringWriter (); Sequence sequence = new Sequence { Activities = { // so, assigning a reference type [eg StringWriter] // as target is prohibited in WF4RC. what or how do // i assign a target? introduction cited above may // not […]

在.NET 4.0中加载存储为XAML的工作流

加载以前创建并存储为XAML的.NET 4.0 Beta2工作流的语法是什么。 WorkflowElement和WorkflowXamlServices类不再存在。 我正在尝试做这样的事情(在Beta 1中有效): WorkflowElement wf = WorkflowXamlServices.Load(File.OpenRead(“Workflow.xaml”)) as WorkflowElement;

将行为属性添加到WorkflowServiceHost

大家好我在向WorkflowServiceHost添加自定义行为时遇到问题。 这是我的WorflowServiceHostFactory: public class ScoringWorkflowServiceHostFactory : WorkflowServiceHostFactory, IServiceHost { private static IKernel _InjectionInstance; public IKernel InjectionInstance { get { return _InjectionInstance ?? (_InjectionInstance = new StandardKernel(new ScoringWorkflowServicesNinjectModule(Scope))); } } public object Scope { get { return Guid.NewGuid(); } } public override ServiceHostBase CreateServiceHost(string constructorString, Uri[] baseAddresses) { String fullFilePath = Path.Combine(HostingEnvironment.ApplicationPhysicalPath, constructorString); WorkflowService wf = […]

如何使Win服务长期运行线程

我有一个win服务托管一些我需要长时间运行的工作流程(WorkflowApplication和WorkflowServiceHost)。 因为OnStart()要求它完成并返回到操作系统,所以我有一个主方法可以触发线程池中的另一个线程。 我的Onstart()主要看起来像这样 protected override void OnStart(string[] args) { eventLog.WriteEntry(“Service starting…”); ThreadPool.QueueUserWorkItem(new WaitCallback(ServiceMainThread)); Thread.Sleep(100); eventLogCms.WriteEntry(“Service Started.”); } ServiceMainThread()是我的工作流程执行和实现核心function的方法。 当我在Windows 7机器上启动服务时,它运行然后在大约8分钟后死亡。 在Win Server 2008上,线程永远不会执行。 所以我认为我已经错误地实现了线程,而且什么是ServiceMainThread有点不对劲。 我愿意接受有关可以改进的建议或任何方向的建议,因为我刚接触线程.Net。 ServiceMainThread中的基本线程代码编码如下: private void ServiceMainThread(object state) { // .. execute workflows .. eventLog.WriteEntry(“Workflows executed.”); while(alive) { Thread.Sleep(1); // … check workflow states and ensure they’re still executing … } // .. […]

我用什么字符串连接到SQL Server?

我正在尝试通过自定义活动使用CRM工作流执行SQL作业。 在我的代码中,一个在线教程让我像这样构建它(在c#中): [CrmWorkflowActivity(“A test activity to run SQL Jobs”)] public sealed class ExecuteSQLJob : System.Activities.CodeActivity { #region Inputs [Input(“Job Name”)] [Default(“BMS_ExtractTransformLoad”)] public InArgument JobName { get; set; } [Input(“Server Connection”)] [Default(“HBSSQL2008/MSSQLSERVER”)] //<–This String public InArgument ServerName { get; set; } [Input(“User Name”)] [Default(“—–“)] public InArgument UserName { get; set; } [Input(“Password”)] [Default(“—–“)] public InArgument Password […]