質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

1回答

2491閲覧

ASP.NET:開発環境で参照追加を果たした上で改修を済ませたサイト、運用環境での実装方法を確認させてください(アセンブリのエラーを解決する手順)

saya24

総合スコア222

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2020/07/12 03:38

今回の作業:
ASP.NET4.0の一つのWebサイト(運用中)について、新たにページを追加し そちらにExcelファイルのアップロード機能を配備する。
(アプロードされたブックに基づいてタブ区切りテキストを作成)

開発環境:
Windows10 Enterprise 2016 LTSB / VisualStudio Professinal 2017、VB.NET利用
デバッグ実行時 IISExpresshaは64bit版が起動するようにしてある

運用環境:
WindowsServer2016 Standard
IIS Ver10.0
###【質問】運用環境で生じたパーサエラーをどういう手続きで 回避すればよろしいでしょうか
パーサエラー

【ここまでの流れ】

開発環境VisualStudioで今回 Microsoft Office Object Library16.0(Ver2.8) というものに対し 参照の追加操作を行いました。
COMの中に表示されたソレについてチェックボックスをOnにするだけの操作でした。
これによって、恐らく
①当該プロジェクトのBINフォルダ内に 以下2点が 追加された認識、また
参照追加
②Web.config(勿論開発環境のサイトの)についても 以下2行が追加された認識

Config

1<add assembly="office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"/> 2<add assembly="stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

をしています。

ということで....運用環境に 今回新たな作ったWebページとコードのファイル(.aspxと.aspx.vb)を追加した上、
上記①と②についても 手作業で 追加・追記の対応を 果たしました。
その上で、運用環境のサイトの初期ぺーじをブラウザ(IE)で開こうとしたところ、上記のパーサエラーを招いてしまった、という状況です。
ちなみに、Web.configに追記した上記②の2行のアセンブリ宣言を除去すると、初期ぺーじも立ち上がり、今回追加したWebページも表示することができます。但し、その追加されたページでコマンドボタンを押下すると 以下エラーを招きます。
実行時エラー

この背景には 当該Webページのコードに、以下コーディングが含まれているがため と思われます。

VB

1Dim exl As New Microsoft.Office.Interop.Excel.Application 2Dim sh As Microsoft.Office.Interop.Excel.Worksheet 3Dim wb As Microsoft.Office.Interop.Excel.Workbook

Web.Configに記述したアセンブリのためのファイルがないことが要因と推察されますが、
その存在確認の方法、入手方法(入手すれば解決するのか)を どなたか 教えてくださいませんでしょうか?
GAC確認方法を参考にするも そもそも何のファイルを確認するかが不明で....)
尚、開発環境にはOffice2016(EXCEL)がインストールされていますが 運用環境にはセットアップされていません。この状況下では今回の目的が達成されない、とのことであれば残念ながら諦めるほか ないと考えています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

直接の回答ではありません。方針変更のおすすめです。

マイクロソフトは、Office のサーバーサイド オートメーションを推奨またはサポートしていません。

Office のサーバーサイド オートメーションについて
https://support.microsoft.com/ja-jp/help/257757/considerations-for-server-side-automation-of-office

Open XML, ClosedXML, ASP.NET で動くように設計されたサードパーティ製ライブラリなどを使うことを検討することをお勧めします。

Excel のブックから「タブ区切りテキスト」を作るだけなら ACE + ADO.NET だけでできるかもしれません。

投稿2020/07/12 04:25

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

saya24

2020/07/12 05:45 編集

ご無沙汰しております、SurferOnWww様 ASP.NETのサイト内で、拡張子xlsxのファイルを読み込み、行と列を認識して値が取得できればどんな手順でも構いません。 ご回答を受けADO.NETをキーワードにネット上の記事を模索していたのですが、デスクトップアプリケーションでの達成記事が目立ってしまい<https://kajimublog.com/memo-adodb-excel/> どうしたものか、と考えていました。 しかし....現在までASP.NETでSystem.Data.SqlClientをインポートして SQLServerとさんざ データのやりとりをしてきた技術も ADO.NETなのでは と思い始めている自分です.... DBがExcelになるだけで、System.Data.SqlClientさえ インポートされていれば 扱えるはず とのことであれば 大変嬉しいです。 今回の運用サーバ側のアセンブリの問題も おきないと思えたので.... ちょっと 今から SQL文でブックにアクセスする作りに挑戦していみます。
saya24

2020/07/12 11:54 編集

開発環境(VisualStudio)で ユーザがアップロードするブックにADO.NETプロバイダで接続して タブ区切りテキストを出力できるよう 無事対応を完了しました。この達成のため ネット上の記事を参考に 予め当該プロジェクトに参照の追加として Microsoft ActiveX Data Objects Library 6.1 Microsoft OLE DB Service Compornent 1.0 Type Library を果たしました。 プロジェクトのBINフォルダに新たに Interop.ADODB.dll と Interop.MSDASC.dllが追加されたことも確認しました。 ここまで本当にスムースに進み、運用環境へいざ!、という気持ちで 改修を終えたWebページのコード及び 先言及の2つのdllをBINフォルダへ追加した上、(当初の解決方法のために記述したWebConfig上のアセンブリ追加は削除) 運用環境のサイトを 実行してみました。 不要なアセンブリを読む必要がなくなり、初期ページがたちあがり 目的のWebページまでたどり着いて目的のコマンドボタン(書式変換)を押下すると.... 「プロバイダが見つかりません。正しく正しくインストールされていない可能性があります。」 というエラーを招きました。 当初の問合せ内容と 現在生じている問題にだいぶ乖離が生じてしまいましたが、この問題を解決するために 何を確認したら 良いか? 教えて頂けないでしょうか?別の案件として 掲載すべきでしょうか.... 今話題にしている運用環境のWebServerは 以前にこちらの記事でご面倒をみて頂いた筐体です。この際は たしかGACやmachine.configの確認にだいぶ時間を費やして解決を導いた記憶があります。 <https://social.msdn.microsoft.com/Forums/ja-JP/5fed3a9c-8464-417e-948a-66d864794eac/aspnet401236312425aspnet4612288124081228831227348922001312398web124?forum=aspnetja> ご見解を頂けたら幸いです、よろしくお願い申し上げます。
退会済みユーザー

退会済みユーザー

2020/07/12 13:49

混乱・迷走しているようで、訳が分かりません。結局どうすることにしたのですか?
saya24

2020/07/12 14:31

ご提案の通りにACE+ADOの手立てで開発環境で目的を達成しました。 運用環境でも対応しようと、開発環境で追加されたdllを同じようにBINフォルダへ格納したが、うまくいかない(エラーメッセージは上記に記載したもの) という状況です。 この方針のまま運用環境でもエラーが出なくなることを望んでいます。
退会済みユーザー

退会済みユーザー

2020/07/12 23:42

> ACE+ADOの手立て 自分が提案したのは ADO ではなくて ADO.NET ですが?
退会済みユーザー

退会済みユーザー

2020/07/12 23:56

最初の質問とは話が違ってきていますので、このスレッドで話を続けないでクローズしてください。 方針変更後の質問は新たに別のスレッドを立ててお願いします。ただしその際は ADO なのか ADO.NET なのかはっきりさせてからにして下さい。私が提案した ACE + ADO.NET ならインストールする必要があるのは ACE だけです。やってることが変ですよ。
退会済みユーザー

退会済みユーザー

2020/07/13 00:20

ちなみに、ACE というのは何かは以下の記事を見てください。 Access 2007 の DB を利用するアプリ開発 http://surferonwww.info/BlogEngine/post/2011/11/08/Development-of-application-which-uses-accdb-file-of-Access-2007.aspx ACE + ADO.NET で以下の記事のようなことができます。 ACE OleDb で Excel のブック作成 http://surferonwww.info/BlogEngine/post/2012/01/26/Creating-Excel-workbook-by-using-ACE-OleDb-provider.aspx
saya24

2020/07/13 00:26

今まで参照追加しないでSQLServerとやりとりできていたのに、今回Active X Data Objects Libraryを参照追加して進めている デスクトップアプリの記事を参考に 作業を進めてしまった自分です。 組み直しますね。やはり特別何も参照ついかせずとも、ブックに接続できる筈なのかなー
saya24

2020/07/13 00:28

ありがとうございます、参考にさせて頂きます。 また主旨が変わってきたので、本件クローズとします。
saya24

2020/07/13 09:45

開発環境でOleDbConnectionの作りに変えて、かつ運用サーバ側にACEのプロバイダが登録されていなかったので、MSからインストーラ入手して対応。 万事解決、お騒がせしました。 妙な方向にいかなくて本当に良かった、とご助言に感謝しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問