none
DLL(EPPlus)内メソッドを呼び出したときのセキュリティ例外について RRS feed

  • 質問

  • こんにちは。

    (推奨されない作り方なのはわかっておりますが)単体ASPXファイルにテキストエディタでVBを使って開発をしております。
    ServerのOSは2008 R2ですが、利用している.NET Frameworkは、諸事情により2.0を使っています。

    EPPlusというExcelファイルを取り扱うことができるDLLをこのWebツールの中で利用しています。
    (開発元に聞け、といわれてしまうかもしれませんが・・・覚悟の上で質問させていただきました)
    その中で、Excelファイルを最後に出力するメソッド(GetAsByteArray)で、出力されるファイルのサイズによって、セキュリティ例外のエラーが発生してしまいます。

    EPPlusのフォーラムを調べたところ、1.3MB以上のファイルになると、このメソッドを実行する際にIsolatedStorageFileを利用するみたいで、これがうまく作成されていないような感じです(実際にはこのメソッドの中でZip圧縮をする際に、サイズが大きいとIsolatedStorageFileを利用する仕様になっているみたいです)。

    例外の詳細は「System.Security.SecurityException: 型 'System.Security.Permissions.IsolatedStorageFilePermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' のアクセス許可の要求に失敗しました。」とでていました。

    このような場合、IISやフォルダのアクセス権の変更などで対処することは可能なのでしょうか?
    部内でしか使っていないチープなツールなので、多少強引なやり方でもかまわないのですが・・・

    対処方法をご存知の方いらっしゃいましたら、ご教示願えませんでしょうか?
    よろしくお願いいたします。

    2014年3月27日 9:56

回答

すべての返信

  • ASP.NETの信頼性レベルの設定はどうなっていますか?

    以下によると、設定によって制限があることがわかります。

    http://msdn.microsoft.com/ja-jp/library/ff649312.aspx

    ※IsolatedStorageFilePermissionで検索してみてください。

    • 回答としてマーク どらちん 2014年3月28日 4:30
    2014年3月28日 0:08
  • なちゃさん

    返信、ありがとうございます。
    教えていただいたURLの情報から色々ググってゆき、最終的に以下の対応で解決いたしました。

    1.「C:\Windows\System32\config\systemprofile\AppData\Local」に「IsolatedStorage」フォルダを作成

    2.上記フォルダに対してユーザ「LOCALHOST\IIS_IUSRS」にフルコントロールの権限を付与

    かなり強引な方法だとは思いますが・・・
    これでしばらく様子を見てみようと思います。

    2014年3月28日 4:34