2009-09-01 8 views
0

J'essaie d'accéder à un site de services de reporting en utilisant les services Web fournis, à partir d'un site Web de base asp.net.référence web asp.net pour les services de reporting

J'ai ajouté la référence à reportservice2005.asmx sur le serveur de génération de rapports, mais j'ai du mal à faire fonctionner intellisense et à exécuter/compiler quoi que ce soit. Par exemple, j'ai vu des gens créer une instance du service avec ce qui suit: "ReportingService rService = new ReportingService();" - où ReportingService est le nom de la référence Web, créé dans Visual Studio. J'ai modifié ceci au code de vb.net mais obtenons des erreurs .. c'est comme si le ReportingService est l'espace de noms et je dois choisir l'une des classes à l'intérieur.

donc j'ai essayé "Rservice dim comme ReportingService.ReportingService2005"

Est-ce exact? il semble fonctionner avec intellisense, cependant quand j'essaye alors d'exécuter le code, j'obtiens l'erreur de compilation: "Type 'ReportingService.ReportingService2005' n'est pas défini."

Des idées? À la votre! : D

Répondre

0

Lors de l'ajout de la référence Web, vous avez sûrement demandé d'entrer le nom de référence. Importez d'abord la référence dans votre fichier de classe. Et essayer de créer les instacnes .. cela devrait fonctionner ..

Inclus Exemple de code

using WindowsApplication1.ConfigWS; 

ConfigWS est le nom de WebReference j'ai créé. Et il doit être importé dans le projet et il doit être préfixé avec le nom de l'espace de nom actuel (si disponible).

vérifiez l'exemple de code ci-dessous utilisé pour instancier la méthode Web (CreateServer) définie dans le service Web ConfigWS.

private void Form1_Load(object sender, EventArgs e) 
{ 
     WindowsApplication1.ConfigWS.CConfigurationManagerBCWS objWs = new CConfigurationManagerBCWS(); 
     CReqMsgCreateServer objCreateServer=new CReqMsgCreateServer(); 
     objCreateServer.objServerConfig =new CServerConfig(); 
     objCreateServer.objServerConfig.ServerName="****"; 
     objCreateServer.objServerConfigVOBC.LevelFlag ="---"; 
     CResMsgCreateServer objRes = objWs.CreateServer(objCreateServer);  
} 
+0

Merci Ramesh, désolé d'être une douleur, mais pouvez-vous être plus précis? J'ajoute la référence Web avec VS en cliquant avec le bouton droit de la souris sur mon projet et en sélectionnant "ajouter une référence Web". Ensuite, je fournis l'URL et je lui donne un nom. Ce nom apparaît dans l'arborescence du projet. Ensuite, devrais-je demander une instruction 'imports' en haut de mon fichier .aspx.vb? Intellisense est heureux pour moi de faire cela, bien qu'il nécessite mon nom de projet préfixé (ie importations project.reportingservice '- cela a encore échoué à l'exécution avec le type non défini. :( –

+0

oui, vous devez importer manuellement cet espace de noms particulier dans votre application .. Et il n'est pas obligatoire que votre nom de projet soit préfixé.Sur la frappe importe lui-même, VS va chercher ce nom dans la liste.Pls clarifier moi, sa seule exception de lancement dans le temps d'exécution ou de compilation .. – RameshVel

+0

Merci , oui c'est à l'exécution, l'intellisense semble bien fonctionner mais je reçois le type erreur non définie en cours d'exécution.J'ai essayé d'utiliser wsdl.exe pour créer une classe proxy .vb - l'insertion de cela dans App_Code semble résoudre le problème - mais si vous peut donner des indications sur les raisons pour lesquelles je pourrais avoir les problèmes que je fais en utilisant la référence web directe, je les apprécierais.:) –

0

Avez-vous ajouté l'assemblage dans votre configuration?

Je donne les résultats suivants dans ma section assemblées:

<add assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/ Et dans les httpHandlers j'ai ceci:

<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false" />

+0

Merci Jon, mais je n'utilise pas le contrôle viewer –