- - PR -
ASP.NETでExcelマクロの起動について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-01-14 16:11
じゃんぬねっと様、渋木宏明(ひどり)様
ありがとうございます。 じゃんぬねっと様 大変申し訳ありません、以下のようにCatchを入れると ←☆の箇所で「xlBookが宣言されていません」となります。 すみません、基本的なことをお聞きしていると思います。 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim xlApp As Excel.Application Try xlApp = New Excel.Application 'xlApp.DisplayAlerts = False xlApp.Visible = True Dim xlBooks As Excel.Workbooks = xlApp.Workbooks Try 'Dim xlBook As Excel.Workbook = xlBooks.Open("C:\\Inetpub\\wwwroot\\ExcelADO\\moto.xls") Dim xlBook As Excel.Workbook = xlBooks.Open("C:\\moto.xls") Catch ex As Exception Console.WriteLine(ex.ToString()) Try xlApp.Run("Auto_Open") 'xlApp.Run("Sheet_02.Auto_Open") Finally If Not xlBook Is Nothing Then←☆ Try xlBook.Close()←☆ Finally System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook)←☆ End Try End If End Try Finally If Not xlBooks Is Nothing Then Try xlBooks.Close() Finally System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBooks) End Try End If End Try Finally If Not xlApp Is Nothing Then Try xlApp.Quit() Finally System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp) End Try End If End Try End Sub End Class 渋木宏明(ひどり)様 対象のExcelファイルはマシン名\\IUSR_マシン名に権限があります。 ちなみに現在、IIS,VSNETをインストールしたサーバーで 開発、テスト行っており、マシン起動時はAdministaratorで ログインしています。この点私のほうで誤りがあるでしょうか? 大変お手数をお掛けしますがどうぞよろしくお願い致します。 | ||||||||
|
投稿日時: 2006-01-14 16:59
それは、Catch を入れるべき場所を誤ってるからですね。 Try 〜 Finally ネスト (入れ子) していますよね? 差し込むべき場所はそんな上ではありません。 Try 〜 Finally のインデントと合わせてください。 どういう順番に並んでいるかを考えてみてください。(1 - 2 - 3 - 3 - 2 - 1) Try1 Try2 Try3 Finally3 Finally2 Finally1
それプラス、DCOMCNFG などの設定ですね。 少し検索してみてください。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-01-14 19:44
じゃんぬねっと様
返信ありがとうございます。 とりあえずOPENの検証だけでもと Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim xlApp As Excel.Application xlApp = New Excel.Application xlApp.Visible = True Dim xlBooks As Excel.Workbooks = xlApp.Workbooks Try Dim xlBook As Excel.Workbook = xlBooks.Open("C:\moto.xls") Catch ex As Exception Console.WriteLine(ex.ToString()) End Try xlApp.Run("Auto_Open") End Sub としたのですがOPENで止まってしまいます。 Catchにいかない? ようです。 DCOMCNFGをいろいろいじってるうちに 今度はASP.NET State Serviceが起動しなくなってしまいました VSNETを起動すると 以下のURL ・・・にあるWebプロジェクトを作成するか、開こうとして、 以下のエラーが発生しました。'HTTP/1.1 500 Internal Server Error' なるメッセージが表示されます。 ちなみにどのプロジェクトを開こうとしてもこのエラーが出ます。 たぶん、ASP.NET State Serviceが起動していないせい? なんでしょうね。 DCOMCNFGは Excelアプリケーションのプロパティで セキュリティタグにて ・既定のアクセス許可を使う ・独自の起動アクセス許可を使う →ASPNETやIUSR_マシン名に起動許可を与えています ・独自の構成アクセス許可を使う デフォルトがこうなっていました 一応?ASPNETを含めました 上記の不具合?により 現在イベントビューアのアプリケーションログには aspnet_wp.exeが起動できていないことや システムログにASP.NET State Serviceが開始できていない旨の メッセージが出力されています。 ・・・なんかぐちゃぐちゃになってきました 過去ログを参考に治していきたいと思いますが 何かお気づきの点がありましたら どうぞよろしくお願い致します。 | ||||||||
|
投稿日時: 2006-01-14 20:17
何か微妙にすいません。 私のせいみたいなものですね。(*_ _) ASP.NET IIS 登録ツール 今回は -r オプションだと思います。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-01-14 21:27
じゃんぬねっと様
ありがとうございます、-r オプションでとりあえず イベントログ、ASP.NET State service、VSNET等 元に戻りました。 ExcelのOPENは引き続き検証しております。 Web.configで偽装する場合、 DCOMCNFGのExcelアプリケーションは マシン名\IUSR_マシン名を使用。 と思っているのですが・・・。 | ||||||||
|
投稿日時: 2006-01-15 07:37
その後状況変わらずですが
いろいろ確認しながらやっているうちに 以下のエラーが表示されるようになりました。 'System.UnauthorizedAccessException' の初回例外が mscorlib.dll で発生しました。 追加情報 : パス "WebApplication2.dll" へのアクセスが拒否されました。 'System.UnauthorizedAccessException' の初回例外が mscorlib.dll で発生しました。 追加情報 : パス "WebApplication2.PDB" へのアクセスが拒否されました。 過去ログを元に以下の内容も取得してみました参考になりますでしょうか。 Server.MapPath: c:\inetpub\wwwroot\WebApplication2\ System.Threading.Thread.CurrentPrincipal.Identity.Name: 空白 | ||||||||
|
投稿日時: 2006-01-15 09:05
とりあえず、このあたりを読んでみてください。(^^;)ちょっと、どこまで設定がなされているのかが見えないです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-01-18 05:32
じゃんぬねっと様
返信遅くなりすみません。 また、いろいろ教えて頂きましてありがとうございました。 その後、結果的に以下の方法で対応できましたことを ご報告差し上げます。 288366 - [HOWTO] 対話型ユーザー アカウントで実行するように Office アプリケーションを構成する方法 http://support.microsoft.com/default.aspx?scid=kb;JA;288366 ただ、今回いろいろいじっているので ”この方法で解決できました”といいきれなく(自信がなく) あらたな機会にサーバーインストールから順を追って 確認していきたいと思います。 その際、今回頂きました内容をまた参考にさせて頂きたいと思います。 本当にどうもありがとうございました。 |