private void buttonSaveServerProperties_Click(object sender, EventArgs e) { try { ConfigurationEntity entity = new ConfigurationEntity(); entity.LogicalName = "ServerSettings"; entity.Attributes = new Microsoft.Xrm.Sdk.Deployment.AttributeCollection(); entity.Attributes.Add(new KeyValuePair <string, object>("DisableUserInfoClaim", checkBoxDisableUserInfoClaim.Checked)); entity.Attributes.Add(new KeyValuePair <string, object>("MaxExpandCount", numericUpDownMaxExpandCount.Text)); entity.Attributes.Add(new KeyValuePair <string, object>("MaxResultsPerCollection", numericUpDownMaxResultsPerCollection.Text)); entity.Attributes.Add(new KeyValuePair <string, object>("NlbEnabled", checkBoxNlbEnabled.Checked)); entity.Attributes.Add(new KeyValuePair <string, object>("PostponeAppFabricRequestsInMinutes", numericUpDownPostponeAppFabricRequestsInMinutes.Text)); entity.Attributes.Add(new KeyValuePair <string, object>("PostViaExternalRouter", checkBoxPostViaExternalRouter.Checked)); entity.Attributes.Add(new KeyValuePair <string, object>("SslHeader", textBoxSslHeader.Text)); UpdateAdvancedSettingsRequest request2 = new UpdateAdvancedSettingsRequest(); request2.Entity = entity; serviceClient.Execute(request2); toolStripStatusLabel1.Text = "Server Settings were successfully saved."; } catch (FaultException <Microsoft.Xrm.Sdk.OrganizationServiceFault> ex) { //string url = connection.ServerAddress + "main.aspx?pagetype=entityrecord&etn=eaf_contrat_client&id=" + entity.Id.ToString(); LogManager.WriteLog("Error: " + ex.Detail.Message + "\n" + ex.Detail.TraceText); MessageBox.Show("Error: " + ex.Detail.Message + "\n" + ex.Detail.TraceText); } catch (Exception ex) { if (ex.InnerException != null) { LogManager.WriteLog("Error:" + ex.Message); MessageBox.Show("Error:" + ex.Message + "\n" + ex.InnerException.Message); } else { LogManager.WriteLog("Error:" + ex.Message); MessageBox.Show("Error:" + ex.Message); } } }
private void button1_Click(object sender, EventArgs e) { try { ConfigurationEntity entity = new ConfigurationEntity(); entity.LogicalName = "Deployment"; entity.Attributes = new Microsoft.Xrm.Sdk.Deployment.AttributeCollection(); entity.Attributes.Add(new KeyValuePair <string, object>("AggregateQueryRecordLimit", numericUpDownAggregateQueryRecordLimit.Text)); entity.Attributes.Add(new KeyValuePair <string, object>("AutomaticallyInstallDatabaseUpdates", checkBoxAutomaticallyInstallDatabaseUpdates.Checked)); entity.Attributes.Add(new KeyValuePair <string, object>("AutomaticallyReprovisionLanguagePacks", checkBoxAutomaticallyReprovisionLanguagePacks.Checked)); UpdateAdvancedSettingsRequest request2 = new UpdateAdvancedSettingsRequest(); request2.Entity = entity; serviceClient.Execute(request2); toolStripStatusLabel1.Text = "Deployment Properties were successfully saved."; } catch (FaultException <Microsoft.Xrm.Sdk.OrganizationServiceFault> ex) { //string url = connection.ServerAddress + "main.aspx?pagetype=entityrecord&etn=eaf_contrat_client&id=" + entity.Id.ToString(); LogManager.WriteLog("Error: " + ex.Detail.Message + "\n" + ex.Detail.TraceText); MessageBox.Show("Error: " + ex.Detail.Message + "\n" + ex.Detail.TraceText); } catch (Exception ex) { if (ex.InnerException != null) { LogManager.WriteLog("Error:" + ex.Message); MessageBox.Show("Error:" + ex.Message + "\n" + ex.InnerException.Message); } else { LogManager.WriteLog("Error:" + ex.Message); MessageBox.Show("Error:" + ex.Message); } } }
private void button1_Click(object sender, EventArgs e) { try { ConfigurationEntity entity = new ConfigurationEntity(); entity.LogicalName = "Deployment"; entity.Attributes = new Microsoft.Xrm.Sdk.Deployment.AttributeCollection(); entity.Attributes.Add(new KeyValuePair<string, object>("AggregateQueryRecordLimit", numericUpDownAggregateQueryRecordLimit.Text)); entity.Attributes.Add(new KeyValuePair<string, object>("AutomaticallyInstallDatabaseUpdates", checkBoxAutomaticallyInstallDatabaseUpdates.Checked)); entity.Attributes.Add(new KeyValuePair<string, object>("AutomaticallyReprovisionLanguagePacks", checkBoxAutomaticallyReprovisionLanguagePacks.Checked)); UpdateAdvancedSettingsRequest request2 = new UpdateAdvancedSettingsRequest(); request2.Entity = entity; serviceClient.Execute(request2); toolStripStatusLabel1.Text = "Deployment Properties were successfully saved."; } catch (FaultException<Microsoft.Xrm.Sdk.OrganizationServiceFault> ex) { //string url = connection.ServerAddress + "main.aspx?pagetype=entityrecord&etn=eaf_contrat_client&id=" + entity.Id.ToString(); LogManager.WriteLog("Error: " + ex.Detail.Message + "\n" + ex.Detail.TraceText); MessageBox.Show("Error: " + ex.Detail.Message + "\n" + ex.Detail.TraceText); } catch (Exception ex) { if (ex.InnerException != null) { LogManager.WriteLog("Error:" + ex.Message); MessageBox.Show("Error:" + ex.Message + "\n" + ex.InnerException.Message); } else { LogManager.WriteLog("Error:" + ex.Message); MessageBox.Show("Error:" + ex.Message); } } }
/// <summary> /// This method first connects to the Deployment service. Then, /// uses RetrieveRequest, UpdateRequest and UpdateAdvancedSettingsRequest. /// </summary> /// <param name="serverConfig">Contains server connection information.</param> /// <param name="promptforDelete">When True, the user will be prompted to delete /// all created entities.</param> public void Run(ServerConnection.Configuration serverConfig, bool promptforDelete) { try { // Connect to the Organization service. // The using statement assures that the service proxy will be properly disposed. using (_serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri, serverConfig.HomeRealmUri, serverConfig.Credentials, serverConfig.DeviceCredentials)) { // Instantiate DeploymentServiceClient for calling the service. DeploymentServiceClient serviceClient = ProxyClientHelper.CreateClient( new Uri(serverConfig.DiscoveryUri.ToString() .Replace("Services", "Deployment") .Replace("Discovery", "Deployment"))); // Setting credentials from the current security context. if (serverConfig.Credentials != null) { serviceClient.ClientCredentials.Windows.ClientCredential = serverConfig.Credentials.Windows.ClientCredential; } else { serviceClient.ClientCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials; } #region RetrieveRequest // Retrieve all servers available in the deployment Console.WriteLine("\nRetrieving list of servers...\n"); var servers = serviceClient.RetrieveAll(DeploymentEntityType.Server); // Print list of all retrieved servers. Console.WriteLine("Servers in your deployment"); Console.WriteLine("================================"); foreach (var server in servers) { Console.WriteLine(server.Name); } Console.WriteLine("<End of Listing>"); Console.WriteLine(); // Retrieve details of first (other than current server) or default server from previous call. var serverId = servers.FirstOrDefault(x => x.Name.ToLowerInvariant() != serverConfig.ServerAddress.ToLowerInvariant()); // If no other server exists then default to existing one. if (serverId == null) { serverId = servers.FirstOrDefault(); } Console.WriteLine("\nRetrieving details of one server...\n"); RetrieveRequest retrieveReqServer = new RetrieveRequest(); retrieveReqServer.EntityType = DeploymentEntityType.Server; retrieveReqServer.InstanceTag = serverId; RetrieveResponse retrieveRespServer = (RetrieveResponse)serviceClient.Execute(retrieveReqServer); Server serverToUpdate = (Server)retrieveRespServer.Entity; Console.WriteLine("================================"); Console.WriteLine("Name: " + serverToUpdate.Name); Console.WriteLine("State: " + serverToUpdate.State); Console.WriteLine(); #endregion RetrieveRequest #region UpdateRequest // Avoid updating current server as it would disrupt the further sample execution. if (servers.Count > 1) { // Modified the property we want to update serverToUpdate.State = ServerState.Disabled; // Update the deployment record Console.WriteLine("\nUpdating server...\n"); UpdateRequest updateReq = new UpdateRequest(); updateReq.Entity = serverToUpdate; UpdateResponse uptRes = (UpdateResponse)serviceClient.Execute(updateReq); // Retrieve server details again to check if it is updated RetrieveResponse retrieveRespServerUpdated = (RetrieveResponse)serviceClient.Execute(retrieveReqServer); Server serverUpdated = (Server)retrieveRespServerUpdated.Entity; Console.WriteLine("Server Updated"); Console.WriteLine("================================"); Console.WriteLine("Name: " + serverUpdated.Name); Console.WriteLine("State: " + serverUpdated.State); Console.WriteLine(); // Revert change serverUpdated.State = ServerState.Enabled; Console.WriteLine("\nReverting change made in server...\n"); UpdateRequest updateReqRevert = new UpdateRequest(); updateReqRevert.Entity = serverUpdated; UpdateResponse uptResRev = (UpdateResponse)serviceClient.Execute(updateReqRevert); RetrieveResponse retrieveRespServerReverted = (RetrieveResponse)serviceClient.Execute(retrieveReqServer); Server serverReverted = (Server)retrieveRespServerReverted.Entity; Console.WriteLine("Server Reverted"); Console.WriteLine("================================"); Console.WriteLine("Name: " + serverReverted.Name); Console.WriteLine("State: " + serverReverted.State); Console.WriteLine(); } else { Console.WriteLine("\nMulti-server environment missing." + "\nSkipping server update request to avoid disruption in the sample execution."); } #endregion UpdateRequest #region UpdateAdvanceRequest // Retrieve Advanced Settings for your organization. Console.WriteLine("\nRetrieving Advanced Settings...\n"); RetrieveAdvancedSettingsRequest requestAdvSettings = new RetrieveAdvancedSettingsRequest { ConfigurationEntityName = "Deployment", ColumnSet = new ColumnSet("Id") }; ConfigurationEntity configuration = ((RetrieveAdvancedSettingsResponse) serviceClient.Execute(requestAdvSettings)).Entity; // Print out all advanced settings where IsWritable==true. Console.WriteLine("Advanced deployment settings that can be updated"); Console.WriteLine("================================================"); foreach (var setting in configuration.Attributes) { if (setting.Key != "Id") { Console.WriteLine( String.Format("{0}: {1}", setting.Key, setting.Value)); } } Console.WriteLine(); // Create the Configuration Entity with the values to update ConfigurationEntity configEntity = new ConfigurationEntity(); configEntity.LogicalName = "Deployment"; configEntity.Attributes = new AttributeCollection(); configEntity.Attributes.Add (new KeyValuePair <string, object> ("AutomaticallyInstallDatabaseUpdates", true)); // Update Advanced Settings Console.WriteLine("\nUpdating Advanced Settings...\n"); UpdateAdvancedSettingsRequest updateAdvanceReq = new UpdateAdvancedSettingsRequest(); updateAdvanceReq.Entity = configEntity; serviceClient.Execute(updateAdvanceReq); // Retrieve Advanced Settings to check if they have been updated ConfigurationEntity configurationUpdated = ((RetrieveAdvancedSettingsResponse) serviceClient.Execute(requestAdvSettings)).Entity; Console.WriteLine("Advanced deployment settings updated"); Console.WriteLine("================================================"); foreach (var setting in configurationUpdated.Attributes) { if (setting.Key != "Id") { Console.WriteLine( String.Format("{0}: {1}", setting.Key, setting.Value)); } } Console.WriteLine(); // Revert change ConfigurationEntity entityRevert = new ConfigurationEntity(); entityRevert.LogicalName = "Deployment"; entityRevert.Attributes = new AttributeCollection(); entityRevert.Attributes.Add (new KeyValuePair <string, object> ("AutomaticallyInstallDatabaseUpdates", false)); Console.WriteLine("\nReverting Advanced Settings...\n"); UpdateAdvancedSettingsRequest requestRevert = new UpdateAdvancedSettingsRequest(); requestRevert.Entity = entityRevert; serviceClient.Execute(requestRevert); ConfigurationEntity configurationReverted = ((RetrieveAdvancedSettingsResponse) serviceClient.Execute(requestAdvSettings)).Entity; Console.WriteLine("Advanced deployment settings reverted"); Console.WriteLine("================================================"); foreach (var setting in configurationReverted.Attributes) { if (setting.Key != "Id") { Console.WriteLine( String.Format("{0}: {1}", setting.Key, setting.Value)); } } Console.WriteLine(); #endregion UpdateAdvanceRequest } } // Catch any service fault exceptions that Microsoft Dynamics CRM throws. catch (FaultException <DeploymentServiceFault> ) { // You can handle an exception here or pass it back to the calling method. throw; } }
/// <summary> /// This method first connects to the Deployment service. Then, /// uses RetrieveRequest, UpdateRequest and UpdateAdvancedSettingsRequest. /// </summary> /// <param name="serverConfig">Contains server connection information.</param> /// <param name="promptforDelete">When True, the user will be prompted to delete /// all created entities.</param> public void Run(ServerConnection.Configuration serverConfig, bool promptforDelete) { try { // Connect to the Organization service. // The using statement assures that the service proxy will be properly disposed. using (_serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri, serverConfig.HomeRealmUri,serverConfig.Credentials, serverConfig.DeviceCredentials)) { // Instantiate DeploymentServiceClient for calling the service. DeploymentServiceClient serviceClient = ProxyClientHelper.CreateClient( new Uri(serverConfig.DiscoveryUri.ToString() .Replace("Services", "Deployment") .Replace("Discovery", "Deployment"))); // Setting credentials from the current security context. if (serverConfig.Credentials != null) { serviceClient.ClientCredentials.Windows.ClientCredential = serverConfig.Credentials.Windows.ClientCredential; } else { serviceClient.ClientCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials; } #region RetrieveRequest // Retrieve all servers available in the deployment Console.WriteLine("\nRetrieving list of servers...\n"); var servers = serviceClient.RetrieveAll(DeploymentEntityType.Server); // Print list of all retrieved servers. Console.WriteLine("Servers in your deployment"); Console.WriteLine("================================"); foreach (var server in servers) { Console.WriteLine(server.Name); } Console.WriteLine("<End of Listing>"); Console.WriteLine(); // Retrieve details of first (other than current server) or default server from previous call. var serverId = servers.FirstOrDefault(x => x.Name.ToLowerInvariant() != serverConfig.ServerAddress.ToLowerInvariant()); // If no other server exists then default to existing one. if (serverId == null) serverId = servers.FirstOrDefault(); Console.WriteLine("\nRetrieving details of one server...\n"); RetrieveRequest retrieveReqServer = new RetrieveRequest(); retrieveReqServer.EntityType = DeploymentEntityType.Server; retrieveReqServer.InstanceTag = serverId; RetrieveResponse retrieveRespServer = (RetrieveResponse)serviceClient.Execute(retrieveReqServer); Server serverToUpdate = (Server)retrieveRespServer.Entity; Console.WriteLine("================================"); Console.WriteLine("Name: " + serverToUpdate.Name); Console.WriteLine("State: " + serverToUpdate.State); Console.WriteLine(); #endregion RetrieveRequest #region UpdateRequest // Avoid updating current server as it would disrupt the further sample execution. if (servers.Count > 1) { // Modified the property we want to update serverToUpdate.State = ServerState.Disabled; // Update the deployment record Console.WriteLine("\nUpdating server...\n"); UpdateRequest updateReq = new UpdateRequest(); updateReq.Entity = serverToUpdate; UpdateResponse uptRes = (UpdateResponse)serviceClient.Execute(updateReq); // Retrieve server details again to check if it is updated RetrieveResponse retrieveRespServerUpdated = (RetrieveResponse)serviceClient.Execute(retrieveReqServer); Server serverUpdated = (Server)retrieveRespServerUpdated.Entity; Console.WriteLine("Server Updated"); Console.WriteLine("================================"); Console.WriteLine("Name: " + serverUpdated.Name); Console.WriteLine("State: " + serverUpdated.State); Console.WriteLine(); // Revert change serverUpdated.State = ServerState.Enabled; Console.WriteLine("\nReverting change made in server...\n"); UpdateRequest updateReqRevert = new UpdateRequest(); updateReqRevert.Entity = serverUpdated; UpdateResponse uptResRev = (UpdateResponse)serviceClient.Execute(updateReqRevert); RetrieveResponse retrieveRespServerReverted = (RetrieveResponse)serviceClient.Execute(retrieveReqServer); Server serverReverted = (Server)retrieveRespServerReverted.Entity; Console.WriteLine("Server Reverted"); Console.WriteLine("================================"); Console.WriteLine("Name: " + serverReverted.Name); Console.WriteLine("State: " + serverReverted.State); Console.WriteLine(); } else Console.WriteLine("\nMulti-server environment missing." + "\nSkipping server update request to avoid disruption in the sample execution."); #endregion UpdateRequest #region UpdateAdvanceRequest // Retrieve Advanced Settings for your organization. Console.WriteLine("\nRetrieving Advanced Settings...\n"); RetrieveAdvancedSettingsRequest requestAdvSettings = new RetrieveAdvancedSettingsRequest { ConfigurationEntityName = "Deployment", ColumnSet = new ColumnSet("Id") }; ConfigurationEntity configuration = ((RetrieveAdvancedSettingsResponse) serviceClient.Execute(requestAdvSettings)).Entity; // Print out all advanced settings where IsWritable==true. Console.WriteLine("Advanced deployment settings that can be updated"); Console.WriteLine("================================================"); foreach (var setting in configuration.Attributes) { if (setting.Key != "Id") { Console.WriteLine( String.Format("{0}: {1}", setting.Key, setting.Value)); } } Console.WriteLine(); // Create the Configuration Entity with the values to update ConfigurationEntity configEntity = new ConfigurationEntity(); configEntity.LogicalName = "Deployment"; configEntity.Attributes = new AttributeCollection(); configEntity.Attributes.Add (new KeyValuePair<string, object> ("AutomaticallyInstallDatabaseUpdates", true)); // Update Advanced Settings Console.WriteLine("\nUpdating Advanced Settings...\n"); UpdateAdvancedSettingsRequest updateAdvanceReq = new UpdateAdvancedSettingsRequest(); updateAdvanceReq.Entity = configEntity; serviceClient.Execute(updateAdvanceReq); // Retrieve Advanced Settings to check if they have been updated ConfigurationEntity configurationUpdated = ((RetrieveAdvancedSettingsResponse) serviceClient.Execute(requestAdvSettings)).Entity; Console.WriteLine("Advanced deployment settings updated"); Console.WriteLine("================================================"); foreach (var setting in configurationUpdated.Attributes) { if (setting.Key != "Id") { Console.WriteLine( String.Format("{0}: {1}", setting.Key, setting.Value)); } } Console.WriteLine(); // Revert change ConfigurationEntity entityRevert = new ConfigurationEntity(); entityRevert.LogicalName = "Deployment"; entityRevert.Attributes = new AttributeCollection(); entityRevert.Attributes.Add (new KeyValuePair<string, object> ("AutomaticallyInstallDatabaseUpdates", false)); Console.WriteLine("\nReverting Advanced Settings...\n"); UpdateAdvancedSettingsRequest requestRevert = new UpdateAdvancedSettingsRequest(); requestRevert.Entity = entityRevert; serviceClient.Execute(requestRevert); ConfigurationEntity configurationReverted = ((RetrieveAdvancedSettingsResponse) serviceClient.Execute(requestAdvSettings)).Entity; Console.WriteLine("Advanced deployment settings reverted"); Console.WriteLine("================================================"); foreach (var setting in configurationReverted.Attributes) { if (setting.Key != "Id") { Console.WriteLine( String.Format("{0}: {1}", setting.Key, setting.Value)); } } Console.WriteLine(); #endregion UpdateAdvanceRequest } } // Catch any service fault exceptions that Microsoft Dynamics CRM throws. catch (FaultException<DeploymentServiceFault>) { // You can handle an exception here or pass it back to the calling method. throw; } }
private void buttonSaveServerProperties_Click(object sender, EventArgs e) { try { ConfigurationEntity entity = new ConfigurationEntity(); entity.LogicalName = "ServerSettings"; entity.Attributes = new Microsoft.Xrm.Sdk.Deployment.AttributeCollection(); entity.Attributes.Add(new KeyValuePair<string, object>("DisableUserInfoClaim", checkBoxDisableUserInfoClaim.Checked)); entity.Attributes.Add(new KeyValuePair<string, object>("MaxExpandCount", numericUpDownMaxExpandCount.Text)); entity.Attributes.Add(new KeyValuePair<string, object>("MaxResultsPerCollection", numericUpDownMaxResultsPerCollection.Text)); entity.Attributes.Add(new KeyValuePair<string, object>("NlbEnabled", checkBoxNlbEnabled.Checked)); entity.Attributes.Add(new KeyValuePair<string, object>("PostponeAppFabricRequestsInMinutes", numericUpDownPostponeAppFabricRequestsInMinutes.Text)); entity.Attributes.Add(new KeyValuePair<string, object>("PostViaExternalRouter", checkBoxPostViaExternalRouter.Checked)); entity.Attributes.Add(new KeyValuePair<string, object>("SslHeader", textBoxSslHeader.Text)); UpdateAdvancedSettingsRequest request2 = new UpdateAdvancedSettingsRequest(); request2.Entity = entity; serviceClient.Execute(request2); toolStripStatusLabel1.Text = "Server Settings were successfully saved."; } catch (FaultException<Microsoft.Xrm.Sdk.OrganizationServiceFault> ex) { //string url = connection.ServerAddress + "main.aspx?pagetype=entityrecord&etn=eaf_contrat_client&id=" + entity.Id.ToString(); LogManager.WriteLog("Error: " + ex.Detail.Message + "\n" + ex.Detail.TraceText); MessageBox.Show("Error: " + ex.Detail.Message + "\n" + ex.Detail.TraceText); } catch (Exception ex) { if (ex.InnerException != null) { LogManager.WriteLog("Error:" + ex.Message); MessageBox.Show("Error:" + ex.Message + "\n" + ex.InnerException.Message); } else { LogManager.WriteLog("Error:" + ex.Message); MessageBox.Show("Error:" + ex.Message); } } }