A
la maniere du portail Report Manager je souhaite supprimer un role SSRS
qui est associé a un groupe donné. Malheureusement il y a une erreur :
Citation:
System.Web.Services.Protocols.SoapException: The required field Policy
is missing from the input structure. --->
Microsoft.ReportingServices.Diagnostics.Utilities.MissingElementException:
The required field Policy is missing from the input structure.
at Microsoft.ReportingServices.Library.Soap.Policy.PolicyArrayToXml(Policy[] policies)
at Microsoft.ReportingServices.WebServer.ReportingService2005.SetPolicies(String Item, Policy[] Policies)
--- End of inner exception stack trace ---
at Microsoft.ReportingServices.WebServer.ReportingService2005.SetPolicies(String Item, Policy[] Policies)
Description: An unhandled exception occurred during the execution of
the current web request. Please review the stack trace for more
information about the error and where it originated in the code.
Exception Details: System.Web.Services.Protocols.SoapException:
System.Web.Services.Protocols.SoapException: The required field Policy
is missing from the input structure. --->
Microsoft.ReportingServices.Diagnostics.Utilities.MissingElementException:
The required field Policy is missing from the input structure.
at Microsoft.ReportingServices.Library.Soap.Policy.PolicyArrayToXml(Policy[] policies)
at Microsoft.ReportingServices.WebServer.ReportingService2005.SetPolicies(String Item, Policy[] Policies)
--- End of inner exception stack trace ---
at Microsoft.ReportingServices.WebServer.ReportingService2005.SetPolicies(String Item, Policy[] Policies)
Source Error:
Line 90:
Line 91: 'on refait la sécurité
Line 92: rs.SetPolicies(Item, Policies)
Line 93: 'historique("Suppression", "Groupe: " &
DropDownListgpe.SelectedItem.Text & " au Rôle: " &
ListBoxroles.SelectedItem.Text)
Line 94: 'Response.Redirect("~/Administration/Autorisation/Page4.aspx?nocache=", True)
Source File: C:\Inetpub\wwwroot\a\Administration\Autorisation\Page4.aspx.vb Line: 92
Stack Trace:
[SoapException: System.Web.Services.Protocols.SoapException: The
required field Policy is missing from the input structure. --->
Microsoft.ReportingServices.Diagnostics.Utilities.MissingElementException:
The required field Policy is missing from the input structure.
at Microsoft.ReportingServices.Library.Soap.Policy.PolicyArrayToXml(Policy[] policies)
at Microsoft.ReportingServices.WebServer.ReportingService2005.SetPolicies(String Item, Policy[] Policies)
--- End of inner exception stack trace ---
at Microsoft.ReportingServices.WebServer.ReportingService2005.SetPolicies(String Item, Policy[] Policies)]
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage
message, WebResponse response, Stream responseStream, Boolean
asyncCall) +533462
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +204
Microsoft.SqlServer.ReportingServices2005.ReportingService2005.SetPolicies(String Item, Policy[] Policies) +63
Autorisation4.Buttondesassign_Click(Object sender, EventArgs e) in
C:\Inetpub\wwwroot\a\Administration\Autorisation\Page4.aspx.vb:92
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102
|
Voici le code:
Code :
'pour supprimer une association role SSRS - groupe
Dim rs AsNew Microsoft.SqlServer.ReportingServices2005.ReportingService2005
Dim pol()As Microsoft.SqlServer.ReportingServices2005.Policy
Dim policy As Microsoft.SqlServer.ReportingServices2005.Policy
Dim role AsNew Microsoft.SqlServer.ReportingServices2005.Role
Dim item2 AsObject
Dim Item AsString = "/"
Dim p, k, n AsInteger
Dim maliste AsNew arraylist
rs.Credentials = System.Net.CredentialCache.DefaultCredentials()
pol = rs.GetPolicies(Item, True)
Dim Policies(pol.Length - 1)As Microsoft.SqlServer.ReportingServices2005.Policy
n = 0
k = 0
'pour chaque instance de sécurité
ForEach policy In pol
If policy.GroupUserName <> Environment.MachineName & "\" & DropDownListgpe.selecteditem.textThen
ListBox1.Items.Add(policy.GroupUserName)
Policies(n) = New Microsoft.SqlServer.ReportingServices2005.Policy
Policies(n).GroupUserName = policy.GroupUserName
'on défnit le nombre de rôle(s)
Policies(n).Roles = New Microsoft.SqlServer.ReportingServices2005.Role(policy.roles.Length - 1){}
ForEach role In policy.Roles
ListBox2.Items.Add(role.Name)
maliste.add(role.name)
Next
For p = 0To policy.roles.Length - 1
Policies(n).Roles(p) = New Microsoft.SqlServer.ReportingServices2005.Role
Policies(n).Roles(p).Name = maliste.item(k).ToString
Next p
k = k + policy.roles.Length
n = n + 1
EndIf
Next
'on refait la sécurité
rs.SetPolicies(Item, Policies)
Merci de m'aider parce que là je bloque vraiment....