Problème de rapport Crystal avec IIS - (bobj n'est pas défini, rapport Crystal ne s'affiche pas)
j'ai crystal report 2010 installé avec VS 2010.j'ai créé un rapport crystal qui fonctionne bien dans le localhost mais le problème est une fois que je publie mon site web à IIS le rapport n'est jamais affiché.il affiche juste une page blanche.j'ai vérifié mon dossier publié la même .fichier rpt n'est pas là.quelqu'un peut-il me dire comment résoudre ce problème?
17 réponses
Solution
la solution est de travailler sur IIS de cette façon:
- Copier
aspnet_client
dossierc:\inetpub\wwwroot
dossier vers le nouveau dossier racine du site.
ou (le premier est plus facile, la seconde est la meilleure pour l'entretien)
- Créer un répertoire virtuel
aspnet_client
cela indiquec:\inetpub\wwwroot\aspnet_client
à l'intérieur du nouveau site web
Problème analyse
Il est possible d'analyser le problème
- en utilisant outils du client (debug fenêtre de navigateur)
GET http://someserver:20080/aspnet_client/system_web/4_0_30319/crystalreportviewers13/js/crviewer/crv.js 403 (Forbidden)
GET
http://someserver:20080/aspnet_client/system_web/4_0_30319/crystalreportviewers13/js/crviewer/images/style.css 403 (Forbidden)
- ou le serveur de l'outil (journal IIS , sur WIN2003 est placé dans
%SYSTEMROOT%\System32\LogFiles\W3SVC###\
on WIN2008C:\inetpub\logs\LogFiles\W3SVC###
).
2011-03-28 13:00: 49 W3SVC701536 95.228.38.41 OBTENIR / aspnet_client/system_web/4_0_30319/crystalreportviewers13/js/crviewer/images / style.css-20080-192.168.1.2 Mozilla / 5.0+(compatible;+MSIE+9.0; + Windows+NT+6.1;+Trident/5.0) 403 6 64 Errore! 2011-03-28 13: 00: 49 W3SVC701536 95.228.38.41 GET /aspnet_client/system_web/4_0_30319/crystalreportviewers13/js/crviewer/crv.js - 20080-192.168.1.2 Mozilla / 5.0+(compatible;+MSIE+9.0; + Windows+NT+6.1;+Trident/5.0) 403 6 64 Errore!
la Cause de l' problème
Crystal Reports runtime est installé, mais votre application ne fonctionne pas sous le site Web par défaut.
- dans les deux cas, j'ai trouvé que
crv.js
etstyle.css
certains fichiers n'ont pas servi; - ces fichiers sont placés par l'installateur CR dans
wwwroot\aspnet_client
dossier, mais pour certaines raisons, ils ne peuvent pas être atteint; - Dans mon cas, la raison est que j'ai créer un site Web différent (port 20080) et dossier aspnet_client n'est pas placé à l'intérieur de ce site web
je vois que vous utilisez différentes versions de logiciels et des configurations différentes, mais je pense que vous avez le même problème.
ce problème était difficile à résoudre pour moi.
ma Configuration est VS 2010, CR 14.0.2000.0 version, Window Server 2008 R2, IIS 7. J'ai eu la solution. J'ai essayé presque toutes les solutions données dans net. Et j'ai mis en œuvre toutes les astuces. Enfin rapport affiché en commentant la ligne ci-dessous dans le web.config.
<add key="ResourceUri" value="/crystalreportviewers13"></add>
maintenant je retire un par un ce que j'ai installé et je vérifie ce qui est exactement requis.
j'ai tout essayé ci-dessous:
- Installé CR Runtime pour CRRuntime_32bit_13_0_4 et CRRuntime_64bit_13_0_4.
- plus tard, J'ai supprimé CRRuntime_32bit_13_0_4 mais ça marche toujours.
- a placé le dossier aspnet_client dans le dossier WWWRoot.
- placé le dossier aspnet_client dans mon dossier d'application.
J'ai recommencé quand j'ai fait quelque chose.
- vous devez utiliser le projet D'Application Web, Aucun projet de site Web parce que L'application web combinera DLL pour projeter aussi.
Copier C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13 (vous aurez obtenu quand vous installez - CRforVS_redist_install_32bit_13_0.exe) à votre projet tel que (ProjectName/crystalreportviewers13)
copiez ceci ci-dessous sur votre site web.config
3.1
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="rptBuildProvider" type="CrystalDecisions.Shared.RptBuildProviderHandler, CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, Custom=null" />
<section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
3.2
<businessObjects>
<crystalReports>
<rptBuildProvider>
<add embedRptInResource="true" />
</rptBuildProvider>
<crystalReportViewer>
<add key="ResourceUri" value="/crystalreportviewers13" />
</crystalReportViewer>
</crystalReports>
</businessObjects>
3.4 publier votre application Web avec le Mode FTP dans votre n'importe quel dossier,et copier cette publication dans votre serveur web puis la tester!
une raison incroyablement simple pour laquelle cela se produit également est que le serveur n'est pas configuré correctement, ce qui signifie que le contenu statique n'est pas activé dans les fonctionnalités HTTP communes sous rôles du serveur/fonctionnalités Windows.
tout d'abord publier manuellement les fichiers rpt dans votre dossier sur le serveur. Si cela fonctionne, alors c'est simplement une question de déploiement. Essayez de vous assurer que l'action de construction pour le fichier lorsque vous cliquez sur il est "contenu". Essayez de voir si vous obtenez un peu plus loin.
j'ai finalement obtenu comme expliqué ci-dessous, en version ancienne et fixe, parce que sur mon serveur de développement j'ai besoin de "~" ce qui n'est pas le cas sur le serveur de développement, à part que j'ai suivi le lien avec précision. ancien :
fixe:
<compilation debug="false">
dans le web.config a marché pour moi.
Voici la solution qui a fonctionné pour moi après des heures de frustration (faites ceci après vous être assuré que copier des dossiers comme recommandé par d'autres ne fonctionnait pas..):
Scénario: CrystalReportsViewer affiche un écran de navigateur Vierge (pas de visualiseur ou une page de rapports vierge)) Voir la source montre le contenu complet du rapport avec le code de visionnement à l'intérieur Le navigateur peut ou ne peut pas afficher un bobj est pas défini d'erreur
Test:
Parcourir le dossier http://<server name>/aspnet_client/system_web/4_0_30319/crystalreportviewers13/images/buttonl.gif
- si vous ne pouvez pas voir les images, alors c'est le même problème que crystalreportsviewer affronte lors de l'affichage des rapports
IIS paramètres à modifier: Étendre les dossiers de votre site Web dans IIS (7.0 ou plus haut) Sélectionnez le dossier "aspnet_client" Sélectionnez "Authentification" dans la page principale (vue des caractéristiques) Sélectionnez "accès anonyme" et activez en utilisant le menu Actions sur le volet de droite (c'est pour à des fins de test seulement, vous pouvez désactiver ce plus tard) Sélectionnez "Gestionnaire De Mappages" sur le volet principal (affichage des Fonctionnalités) Dans le menu" Actions " sur le volet droit Cliquez sur " Revenir à hérité" Accepter de revenir à l'invite de confirmation
nouveau le Test: Parcourir le dossier http:///aspnet_client/system_web/4_0_30319/crystalreportviewers13/images/buttonl.gif - si vous l'image que vous devriez peut ainsi fixer votre rapport
au moins je n'ai pu trouver cette solution documentée nulle part..
Remarque: Faire n'oubliez pas de désactiver L'accès anonyme au dossier aspnet_client dans IIS si vous l'avez fait pour tester (comme dit ci-dessus)
il peut simplement résoudre le problème si vous copiez votre dossier aspnet_client à partir de C:\inetpub\wwwroot vers le dossier de votre site Web nouvellement créé. Par exemple, si le nom de votre site web est TestWebsite, placez aspnet_client folder dans le dossier TestWebsite. Vous n'avez pas besoin de modifier la configuration de web.config
je sais que cela a été demandé il y a quelques années. Mais cette méthode a fonctionné pour moi. C'est pour les gens qui un jour rencontre ce genre de problème.
j'ai créé mon application dans un environnement 32 bits et j'ai changé à 64 bits. J'ai déployé mon application web dans le serveur web IIS (64 bits actuels) et créé mon propre pool d'applications (ayant le "mode de gestion de pipeline" intégré).
puis quand ce problème de rapport s'est produit, j'ai suivi ces instructions de la lien. J'ai changé le mode "gérer le pipeline" en classique et ma demande a fonctionné.
un scénario possible est que le site Web du serveur IIS N'est pas C:\inetpub\wwwroot comme C'est ici que Crystal installe par défaut ses fichiers d'application dans le dossier aspnet_client\system_web\4_0_30319\crystalreportviewers13.
donc une réponse possible est de définir le chemin physique du site c:\inetpub\wwwroot
ajouter cette référence au rapport crystal javascript dans votre page principale ou page rendant le rapport:
<script src='<%=ResolveUrl("~/crystalreportviewers13/js/crviewer/crv.js")%>'type="text/javascript"></script>
Vous pouvez visiter le lien ci-dessous pour plus de détails:
dans mon cas, je viens de mettre à jour le moteur D'exécution SAP crystal reports pour .NET grâce aux applications et aux fonctionnalités, j'utilisais crystal report version 18 dans mon serveur de développement, lorsque j'ai déployé l'application sur un autre serveur ,j'ai eu cette erreur , puis j'ai vérifié la version je n'ai pas eu la version , seulement j'ai eu la date d'installation , donc j'ai mis à jour vers la dernière Version ... et cela a Fonctionné
Ajouter ci-dessous du code dans le fichier aspx où crystal report existe.
<script src="../../aspnet_client/system_web/4_0_30319/crystalreportviewers13/js/crviewer/crv.js" type="text/javascript" >
</script>
aussi copier le dossier aspnet_client à partir de c:\inetpub\wwwroot dossier vers le nouveau dossier racine du site web.
cette méthode résout en dessous de deux problèmes, fonctionne maintenant très bien
- bobj n'est pas défini.
- rapport Crystal non affiché.
je sais que c'est un peu vieux post, mais je pense que le novis comme moi peuvent obtenir de l'aide de ce. ajoutez ce code à votre site web.le fichier de configuration et copie "crystalreportviewers13" dossier "c:\inetpub\wwwroot\aspnet_client" à la racine de votre répertoire
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="rptBuildProvider" type="CrystalDecisions.Shared.RptBuildProviderHandler, CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, Custom=null" />
<section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<rptBuildProvider>
<add embedRptInResource="true" />
</rptBuildProvider>
<crystalReportViewer>
<add key="ResourceUri" value="/crystalreportviewers13" />
</crystalReportViewer>
</crystalReports>
</businessObjects>
une autre Chose que vous pouvez faire est de changer le "virtuel chemin d'accès". Après avoir vérifié la console et la vue réseau de Chrome, j'ai remarqué que les applications n'atteignaient pas le js
et css
ressources, puisque c'était le nom du projet web, afin de définir ce à /
et cela a fait le tour.
j'étais aussi confronté au même problème, je l'ai résolu. lorsque le site web est hébergé par IIS, puis Web.config doit avoir des paramètres dessous :
<add key="ResourceUri" value="~/crystalreportviewers13"/>
Lorsque le site web est hébergé par le biais de Visual Studio, puis
<add key="ResourceUri" value="/crystalreportviewers13"/>