スキップしてメイン コンテンツに移動

0x800a1391 - JavaScript 実行時エラー: 'bobj' は定義されていません

Visual Studio 2013 に CrystalReportViewer を含んだASP.NETのプロジェクトの移行を確認していたのですが、実行させるとタイトルのようなエラーが出て上手く動きません。

 

 

 

ところが、本番環境にインストール(発行)してみると上手く動きます。

 

 

 

どうも、Visual Studio 2013になってから、ローカル環境でのデバッグ用 Web サーバー
「Visual Studio 開発サーバー 」 が廃止され、IIS Express が標準となったのが影響していて、想像するにCrystalReportViewerを上手く参照できなくなっているようです。
ちなみに、CrystalReportViewer を含まないASP.NETのプロジェクトは IIS Express でも上手く動きます。

 

 

 

いろいろと調べてみると、以下のサイトにたどり着きました。

 

http://www.mahadera.com/error-0x800a1391-javascript-runtime-error-bobj-is-undefined/

 

 

 

これを、参考に、解決したのが、以下の手順です。

 

 

 

(1) まず、SAPのサイトから、各自の環境に合わせたRuntimeをダウンロードしてインストールします。特に制約などなければ、最新のものでいいでしょう。

 

 

 

(2)次の場所

 

 C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319

 

 に、

 

   フォルダ    crystalreportviewers13

 

 があることを確認。

 

 

 

(3)プロジェクトの web.config のファイルの一番上の

 

<configuration> 

 

の次に以下を追加。

 

 

 

  <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>

 

 

 

(4)プロジェクトのワーキングディレクトリに、 (2)で確認した場所から 

 

     フォルダ crystalreportviewers13

 

 をコピーする。

 

※ワーキングディレクトリとは sln 属性のファイルとか、obj とか bin のフォルダが有る場所です。

 

 

 

私の場合は、上記の対策で上手く IIS Express でも表示されるようになりました。

 

 

 

一つ注意点は、本番環境にインストール(発行)するときは、(3)で変更した

 

   web.config

 

を本番環境にインストール(発行)してはいけません。このweb.configだと今度は逆に、CrystalReportViewerが参照できなくなるようでうまく表示できません。

 

 

 

最後に、環境を書いておきます。

 

OS Windows 8.1 Update (64bit)

 

IDE Visual Studio 2013

 

SAP Crystal Reports Runtime  (v. 13.0.10.1385)

 

 

 

環境によっては、フォルダ名、位置などは違っているかも知れません。適宜読み替えてください。

 

 

 

 

 

 

 

 

 

 

コメント

このブログの人気の投稿

KVK混合水栓【KF770】の切替弁【PZ669】の交換 

 前の記事にも書いたけれど、家を買ってから10年も経つと、いろいろとガタがくるもので風呂場のKVK混合水栓の切替ハンドルを停止の位置にしてもポタポタと水が止まらなくなりました。       それより、一年前くらいから(もっと前だったかも)、切替ハンドルがスムースではなくなり妙に重くなってきてはいました。これはまあ、実害がなかったのでそのままにしておいたのですが、水漏れとなると話は違います。多分、一晩くらい出続けたら結構な流失量になるはず・・・・。       これは、放置しておけないということで、早速ネットで情報を集めて見ます。   まず、混合水栓の名称と型番は       サーモスタット式シャワー  KF770TN       その結果、切替弁という部品を交換すれば直ると書いてあります。   その部品の名称と型番は       サーモスタットシャワー切替弁ユニット  PZ669 でも、公式よりAmazonのほうが送料無料で安いです。       そして、交換方法はおおまかに こちら に書いてあります。 でも、そこに書いてあるようにすんなりとはいかないので、それを以下に書いておきます。     まず、絶対忘れていけないのは、止水弁をお湯側、水側しっかり締めておきます。さもないと、ずぶ濡れになって、制御不能になるかもしれません。 1.次に、キャップと切替ハンドルの隙間にドライバーを差し込んで、キャップと切替ハンドルを外します。             2.次に切替カラーを外すのですが、これを外すのに結構苦労しました。写真の様にカラーの後ろの部分に切り欠きがあってそれを外すように本体の後ろのプレートを手前側に押しながら外します。私はこれがわからなくてドライバーなどで無理やり外そうとして手こずりました。私は幸運にも割らずに済みましたが、もう少し無理にやったら割っていたかもしれません。   ...

システム管理者が設定したレポート処理ジョブの最大数に達しました

 会社で、後輩が、私が開発した、asp.net のプログラムを使用していた時の事。     急に、エラーが発生して動かなくなったとの事。     直前にどんな事をやっていたか聞いてみると、商品ごとに集計を行っていたのだか、それを連続して、数十回やっていたとのこと。         表示されるメッセージを見ても詳細はわからないので、Webサーバーのイベントビューワーでログを見てみると、以下のようなメッセージが記録されている。         システム管理者が設定したレポート処理ジョブの最大数に達しました。          場所 CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options)      場所 CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options)      場所 CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()           このプログラムはCrystalReportsを使って集計と表示をしているので、どうも CrystalReports絡みのエラーのようである。           そこで、いろいろ調べて見ると、どうもCrystalReportsを使ったあとで、ちゃんと Close とか Dispose とかで、ちゃんと後始末をしなくてはいけないらしい。 そこで、以下のように Unload のイ...

Crystal 構文 if文 の 入れ子の例

 Crystal 構文 で if 文は、構造がわかりにくくネスト(入れ子)はできないのか   と思っていましたができるようです。     と言いながらもよく書き方を忘れるので備忘録的に以下に書いておくので   参考にしてください。           if   [条件1] then             // [条件1]が真の時、以下の条件式を判断する                 if [条件2] then                          // ここに [条件1]かつ[条件2]が真の時処理を書く               else                         //   ここに [条件1]が真で[条件2]が偽の時処理を書く         else                  // ここに[条件1]が偽の時の処理を書く