public WfServiceOperationDefinition AddCompensationService(WfServiceAddressDefinition address, string operationName) { address.NullCheck("address"); operationName.CheckStringIsNullOrEmpty("operationName"); return(this.CompensationServices.Append(new WfServiceOperationDefinition(address, operationName))); }
private static JobBase CreateInvokeServiceJob() { InvokeWebServiceJob job = new InvokeWebServiceJob(); job.JobID = UuidHelper.NewUuidString(); job.Name = "即时服务调用"; job.SvcOperationDefs = new WfServiceOperationDefinitionCollection(); job.LastStartExecuteTime = DateTime.Now.AddMinutes(-5); job.Category = "单元测试"; WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post, null, "http://localhost/MCSWebApp/PermissionCenterServices/Services/PermissionCenterToADService.asmx"); WfServiceOperationParameterCollection parameters = new WfServiceOperationParameterCollection(); parameters.Add(new WfServiceOperationParameter() { Name = "callerID", Type = WfSvcOperationParameterType.RuntimeParameter, Value = "callerID" }); WfServiceOperationDefinition serviceDef = new WfServiceOperationDefinition(address, "GetVersion", parameters, string.Empty); serviceDef.RtnXmlStoreParamName = "Version"; serviceDef.Timeout = TimeSpan.FromSeconds(30); job.SvcOperationDefs.Add(serviceDef); return(job); }
protected void buttonCallBranchProcess_Click(object sender, EventArgs e) { WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post, "http://localhost/MCSWebApp/WfFormTemplate/Services/WfProcessService.svc", WfServiceContentType.Json); WfServiceOperationDefinition definition = new WfServiceOperationDefinition(address, "StartBranchProcesses"); WfServiceOperationParameter p1 = new WfServiceOperationParameter("ownerActivityID", UuidHelper.NewUuidString()); IWfBranchProcessTemplateDescriptor template = new WfBranchProcessTemplateDescriptor("Test"); WfBranchProcessTransferParams transferParams = new WfBranchProcessTransferParams(template); WfServiceOperationParameter p2 = new WfServiceOperationParameter("branchTransferParams", WfSvcOperationParameterType.RuntimeParameter, "transferParams"); definition.Params.Add(p1); definition.Params.Add(p2); WfServiceInvoker invoker = new WfServiceInvoker(definition); WfServiceInvoker.InvokeContext["transferParams"] = transferParams; object result = invoker.Invoke(); resultLabel.Text = Server.HtmlEncode(result.ToString()); }
protected void buttonCallBranchProcess_Click(object sender, EventArgs e) { WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post, "http://localhost/MCSWebApp/WfFormTemplate/Services/WfProcessService.svc", WfServiceContentType.Json); WfServiceOperationDefinition definition = new WfServiceOperationDefinition(address, "StartBranchProcesses"); WfServiceOperationParameter p1 = new WfServiceOperationParameter("ownerActivityID", UuidHelper.NewUuidString()); IWfBranchProcessTemplateDescriptor template = new WfBranchProcessTemplateDescriptor("Test"); WfBranchProcessTransferParams transferParams = new WfBranchProcessTransferParams(template); WfServiceOperationParameter p2 = new WfServiceOperationParameter("branchTransferParams", WfSvcOperationParameterType.RuntimeParameter, "transferParams"); definition.Params.Add(p1); definition.Params.Add(p2); WfServiceInvoker invoker = new WfServiceInvoker(definition); WfServiceInvoker.InvokeContext["transferParams"] = transferParams; object result = invoker.Invoke(); resultLabel.Text = Server.HtmlEncode(result.ToString()); }
protected void btnConfirm_Click(object sender, EventArgs e) { try { string key = this.opKey.Value.Trim(); string address = this.txtServiceAddress.Text.Trim(); string requestMethod = this.dropSendType.SelectedValue; string credentialKey = this.dropCredential.SelectedValue; WfNetworkCredential credential = new WfNetworkCredential(); WfGlobalParameters parameters = WfGlobalParameters.LoadProperties(ParametersKey); WfServiceAddressDefinition serviceAddress = parameters.ServiceAddressDefs[key]; if (serviceAddress == null) { serviceAddress = new WfServiceAddressDefinition(); } serviceAddress.Key = key; serviceAddress.Address = address; serviceAddress.RequestMethod = (WfServiceRequestMethod)Enum.Parse(typeof(WfServiceRequestMethod), requestMethod); serviceAddress.ContentType = (WfServiceContentType)Enum.Parse(typeof(WfServiceContentType), this.ddlContentType.SelectedValue); serviceAddress.Credential = parameters.Credentials.FirstOrDefault(p => p.Key == credentialKey); parameters.ServiceAddressDefs.Remove(p => p.Key == serviceAddress.Key); parameters.ServiceAddressDefs.Add(serviceAddress); parameters.Update(); WebUtility.RefreshParentWindow(); } catch (Exception ex) { throw ex; } }
protected void btnConfirm_Click(object sender, EventArgs e) { try { string key = this.opKey.Value.Trim(); string address = this.txtServiceAddress.Text.Trim(); string requestMethod = this.dropSendType.SelectedValue; string credentialKey = this.dropCredential.SelectedValue; WfNetworkCredential credential = new WfNetworkCredential(); WfGlobalParameters parameters = WfGlobalParameters.LoadProperties(ParametersKey); WfServiceAddressDefinition serviceAddress = parameters.ServiceAddressDefs[key]; if (serviceAddress == null) { serviceAddress = new WfServiceAddressDefinition(); } serviceAddress.Key = key; serviceAddress.Address = address; serviceAddress.RequestMethod = (WfServiceRequestMethod)Enum.Parse(typeof(WfServiceRequestMethod), requestMethod); serviceAddress.ContentType = (WfServiceContentType)Enum.Parse(typeof(WfServiceContentType), this.ddlContentType.SelectedValue); serviceAddress.Credential = parameters.Credentials.FirstOrDefault(p => p.Key == credentialKey); parameters.ServiceAddressDefs.Remove(p => p.Key == serviceAddress.Key); parameters.ServiceAddressDefs.Add(serviceAddress); parameters.Update(); WebUtility.RefreshParentWindow(); } catch (Exception ex) { throw ex; } }
public void WcfServiceTest() { WfNetworkCredential credential = new WfNetworkCredential(); string url = @"http://localhost/MCSWebApp/WcfServiceDemo/Service1.svc"; string addressKey = "testaddress"; WfServiceAddressDefinition addressDef = new WfServiceAddressDefinition(WfServiceRequestMethod.Post, credential, url); addressDef.Key = addressKey; addressDef.ContentType = WfServiceContentType.Json; WfGlobalParameters.Default.ServiceAddressDefs.Add(addressDef); string paraVal = @"{""BoolValue"":""true"",""StringValue"":""test""}"; WfServiceOperationParameter operationParam = new WfServiceOperationParameter() { Name = "composite", Type = WfSvcOperationParameterType.String, Value = paraVal }; WfServiceOperationDefinition operationDef = new WfServiceOperationDefinition(addressKey, "PostContract", new WfServiceOperationParameterCollection() { operationParam }, ""); WfServiceInvoker invoker = new WfServiceInvoker(operationDef); var result = invoker.Invoke(); Console.WriteLine(result.ToString()); }
private void SetHiddenJsonData() { try { string Key = MCS.Web.Library.WebUtility.GetRequestParamString("key", string.Empty); if (!string.IsNullOrEmpty(Key)) { WfGlobalParameters parameters = WfGlobalParameters.LoadProperties(ParametersKey); WfServiceAddressDefinition def = parameters.ServiceAddressDefs[Key]; if (def == null) { return; } //hidResultData.Value = JSONSerializerExecute.Serialize(parameters.ServiceAddressDefs.Find(p=>p.Address==Key)); this.opKey.Value = def.Key; this.opKey.Disabled = true; this.txtServiceAddress.Text = def.Address; this.dropCredential.SelectedValue = def.Credential == null ? "" : def.Credential.Key; this.dropSendType.SelectedValue = def.RequestMethod.ToString(); this.ddlContentType.SelectedValue = def.ContentType.ToString(); } } catch (Exception ex) { WebUtility.ShowClientError(ex.Message, ex.StackTrace, "错误"); } }
private WfServiceOperationDefinition GetWfServiceOperationDefinition(string functionName, string servicAddressKey) { WfServiceAddressDefinition serviceAddressDef = WfGlobalParameters.Default.ServiceAddressDefs[servicAddressKey]; string addressUri = GetWsdlUrl(serviceAddressDef.Address); WebClient wc = new WebClient(); using (Stream stream = wc.OpenRead(addressUri)) { ServiceDescription sd = ServiceDescription.Read(stream); Binding targetBinding = GetBinding(sd, serviceAddressDef.RequestMethod); if (targetBinding == null && serviceAddressDef.RequestMethod == WfServiceRequestMethod.Post) { targetBinding = GetPostableBinding(sd); } if (targetBinding == null) { throw new NotImplementedException("服务不支持此种操作类型" + serviceAddressDef.RequestMethod.ToString()); } Operation operation = GetOperation(sd, targetBinding, functionName); WfServiceOperationParameterCollection reqParameters = GetOperationParams(sd, operation); WfServiceOperationDefinition operationDef = new WfServiceOperationDefinition(serviceAddressDef.Key, functionName, reqParameters, string.Empty); return(operationDef); } }
public WfServiceInvokerFactory() { Url = @"http://localhost/MCSWebApp/WebTestProject/Services/ProcessTestService.asmx"; ParaList = new WfServiceOperationParameterCollection(); Credential = new WfNetworkCredential(); AddressDef = new WfServiceAddressDefinition(WfServiceRequestMethod.Get, Credential, Url); AddressDef.Key = Guid.NewGuid().ToString(); WfGlobalParameters.Default.ServiceAddressDefs.Add(AddressDef); AddressDef.ServiceNS = @"http://tempuri.org/"; SvcOpDef = new WfServiceOperationDefinition(AddressDef.Key, Operation, ParaList, ""); }
public WfServiceInvokerFactory() { Url = @"http://localhost/MCSWebApp/WebTestProject/Services/ProcessTestService.asmx"; ParaList = new WfServiceOperationParameterCollection(); Credential = new WfNetworkCredential(); AddressDef = new WfServiceAddressDefinition(WfServiceRequestMethod.Get, Credential, Url); AddressDef.Key = Guid.NewGuid().ToString(); WfGlobalParameters.Default.ServiceAddressDefs.Add(AddressDef); AddressDef.ServiceNS = @"http://tempuri.org/"; SvcOpDef = new WfServiceOperationDefinition(AddressDef.Key, Operation, ParaList, ""); }
protected void buttonGetServiceName_Click(object sender, EventArgs e) { WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post, "http://localhost/MCSWebApp/WfFormTemplate/Services/WfProcessService.svc", WfServiceContentType.Json); WfServiceOperationDefinition definition = new WfServiceOperationDefinition(address, "GetServerTime"); WfServiceInvoker invoker = new WfServiceInvoker(definition); object result = invoker.Invoke(); resultLabel.Text = Server.HtmlEncode(result.ToString()); }
protected virtual void InitServiceDefinitions() { WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post, string.Empty, WfServiceContentType.Json); this.PrepareAddress(address); WfServiceOperationParameterCollection parameters = new WfServiceOperationParameterCollection(); WfServiceOperationDefinition definition = new WfServiceOperationDefinition(address, this.GetOperationName(), parameters, "returnValue"); this.PrepareParameters(parameters); this.SvcOperationDefs.Add(definition); }
protected void buttonGetServiceName_Click(object sender, EventArgs e) { WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post, "http://localhost/MCSWebApp/WfFormTemplate/Services/WfProcessService.svc", WfServiceContentType.Json); WfServiceOperationDefinition definition = new WfServiceOperationDefinition(address, "GetServerTime"); WfServiceInvoker invoker = new WfServiceInvoker(definition); object result = invoker.Invoke(); resultLabel.Text = Server.HtmlEncode(result.ToString()); }
protected virtual void InitServiceDefinitions() { WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post, string.Empty, WfServiceContentType.Json); this.PrepareAddress(address); WfServiceOperationParameterCollection parameters = new WfServiceOperationParameterCollection(); WfServiceOperationDefinition definition = new WfServiceOperationDefinition(address, this.GetOperationName(), parameters, "returnValue"); this.PrepareParameters(parameters); this.SvcOperationDefs.Add(definition); }
public static void AreEqual(this WfServiceAddressDefinition actual, WfServiceAddressDefinitionConfigurationElement element) { if (actual == null && element == null) { return; } Assert.AreEqual(actual.RequestMethod, element.RequestMethod); Assert.AreEqual(actual.ContentType, element.ContentType); AssertStringEqual(actual.Address, element.Uri.ToUriString()); actual.Credential.AreEqual(element.Identity); }
public override object Deserialize(IDictionary<string, object> dictionary, Type type, JavaScriptSerializer serializer) { WfServiceAddressDefinition svcAddressDef = new WfServiceAddressDefinition(); svcAddressDef.Key = DictionaryHelper.GetValue(dictionary, "Key", string.Empty); svcAddressDef.Address = DictionaryHelper.GetValue(dictionary, "Address", string.Empty); svcAddressDef.ServiceNS = DictionaryHelper.GetValue(dictionary, "ServiceNS", string.Empty); svcAddressDef.RequestMethod = DictionaryHelper.GetValue(dictionary, "RequestMethod", WfServiceRequestMethod.Get); svcAddressDef.ContentType = DictionaryHelper.GetValue(dictionary, "ContentType", WfServiceContentType.Form); if (dictionary.ContainsKey("Credential")) { svcAddressDef.Credential = JSONSerializerExecute.Deserialize<WfNetworkCredential>(dictionary["Credential"]); } return svcAddressDef; }
internal static InvokeWebServiceJob CreateImmediateJob(string jobID, string name, string category, string url, string methodName, WfServiceOperationParameterCollection parameters) { InvokeWebServiceJob job = new InvokeWebServiceJob(); job.JobID = jobID; job.Category = category; job.Name = name; job.SvcOperationDefs = new WfServiceOperationDefinitionCollection(); WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post, null, url); WfServiceOperationDefinition serviceDef = new WfServiceOperationDefinition(address, methodName, parameters, string.Empty); serviceDef.Timeout = TimeSpan.FromSeconds(24 * 60 * 60); job.SvcOperationDefs.Add(serviceDef); return(job); }
private List <string> GetOperationList(string addressKey) { List <string> result = new List <string>(); WfServiceAddressDefinition serviceAddressDef = WfGlobalParameters.Default.ServiceAddressDefs[addressKey]; string addressUri = GetWsdlUrl(serviceAddressDef.Address); WebClient wc = new WebClient(); if (serviceAddressDef.Credential != null) { wc.Credentials = (NetworkCredential)serviceAddressDef.Credential; } using (Stream stream = wc.OpenRead(addressUri)) { ServiceDescription sd = ServiceDescription.Read(stream); Binding targetBinding = GetBinding(sd, serviceAddressDef.RequestMethod); if (targetBinding == null && serviceAddressDef.RequestMethod == WfServiceRequestMethod.Post) { targetBinding = GetPostableBinding(sd); } if (targetBinding == null) { return(result); } PortType portType = sd.PortTypes[targetBinding.Type.Name]; foreach (Operation op in portType.Operations) { result.Add(op.Name); } return(result); } }
public void WcfServiceTest() { WfNetworkCredential credential = new WfNetworkCredential(); string url = @"http://localhost/MCSWebApp/WcfServiceDemo/Service1.svc"; string addressKey = "testaddress"; WfServiceAddressDefinition addressDef = new WfServiceAddressDefinition(WfServiceRequestMethod.Post, credential, url); addressDef.Key = addressKey; addressDef.ContentType = WfServiceContentType.Json; WfGlobalParameters.Default.ServiceAddressDefs.Add(addressDef); string paraVal = @"{""BoolValue"":""true"",""StringValue"":""test""}"; WfServiceOperationParameter operationParam = new WfServiceOperationParameter() { Name = "composite", Type = WfSvcOperationParameterType.String, Value = paraVal }; WfServiceOperationDefinition operationDef = new WfServiceOperationDefinition(addressKey, "PostContract", new WfServiceOperationParameterCollection() { operationParam }, ""); WfServiceInvoker invoker = new WfServiceInvoker(operationDef); var result = invoker.Invoke(); Console.WriteLine(result.ToString()); }
private static JobBase CreateInvokeServiceJob() { InvokeWebServiceJob job = new InvokeWebServiceJob(); job.JobID = UuidHelper.NewUuidString(); job.Name = "即时服务调用"; job.SvcOperationDefs = new WfServiceOperationDefinitionCollection(); job.LastStartExecuteTime = DateTime.Now.AddMinutes(-5); job.Category = "单元测试"; WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post, null, "http://localhost/MCSWebApp/PermissionCenterServices/Services/PermissionCenterToADService.asmx"); WfServiceOperationParameterCollection parameters = new WfServiceOperationParameterCollection(); parameters.Add(new WfServiceOperationParameter() { Name = "callerID", Type = WfSvcOperationParameterType.RuntimeParameter, Value = "callerID" }); WfServiceOperationDefinition serviceDef = new WfServiceOperationDefinition(address, "GetVersion", parameters, string.Empty); serviceDef.RtnXmlStoreParamName = "Version"; serviceDef.Timeout = TimeSpan.FromSeconds(30); job.SvcOperationDefs.Add(serviceDef); return job; }
protected virtual void PrepareAddress(WfServiceAddressDefinition address) { address.Address = ResourceUriSettings.GetConfig().Paths.CheckAndGet("wfProcessService").Uri.ToUriString(); }
protected virtual void PrepareAddress(WfServiceAddressDefinition address) { address.Address = ResourceUriSettings.GetConfig().Paths.CheckAndGet("wfProcessService").Uri.ToUriString(); }
internal static InvokeWebServiceJob CreateImmediateJob(string jobID, string name, string category, string url, string methodName, WfServiceOperationParameterCollection parameters) { InvokeWebServiceJob job = new InvokeWebServiceJob(); job.JobID = jobID; job.Category = category; job.Name = name; job.SvcOperationDefs = new WfServiceOperationDefinitionCollection(); WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post, null, url); WfServiceOperationDefinition serviceDef = new WfServiceOperationDefinition(address, methodName, parameters, string.Empty); serviceDef.Timeout = TimeSpan.FromSeconds(24 * 60 * 60); job.SvcOperationDefs.Add(serviceDef); return job; }