2015-03-04 5 views
0

Я разработал приложение, в котором я использую хрустальные отчеты. Когда я запускаю приложение в своей системе, отчеты о кристаллах работают нормально. Но когда я меняю уровень доверия на Средний, я получаю сообщение об ошибке: System.Security.Permissions.FileIOPermission, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089 Я попытался использовать точки останова, чтобы узнать об ошибке он показывает файл ошибкиIOPermission в этой конкретной строке rd.Load (Server.MapPath ("~/CustomerPurchaseBill.rpt"));crystal report trust level issue

Любое предложение будет оценено.

ответ

0

Возможно, из-за того, что Crystal Reports использует каталог Windows Temp при записи файлов (что делает его практически непригодным для использования в размещенных средах, где вы не можете контролировать эти вещи). У меня есть пост с 2008 года, когда я вдаваться в подробности:

http://www.blakepell.com/2008-10-09-crystal-reports-2008-aspnet-iis

Исправления требуют изменения прав и/или изменения каталога Кристал использует через реестр (также что-то не так легко доступной).

Хотя ваша ошибка также может возникнуть из-за того, что вы не можете получить доступ к файлу отчета в файловой системе. Если это так, вы можете посмотреть, как использовать олицетворение для этого раздела кода, чтобы он работал под учетной записью, которая имеет для нее права.

Надеюсь, это поможет!

+0

Привет, я смог решить вышеупомянутую проблему, и попросил моих хостинг-провайдеров изменить уровень доверия. Теперь с тем же кодом мне придется столкнуться с этой проблемой. System.Runtime.InteropServices.COMException: Недопустимое имя файла. im не уверен, что проблема с кодом теперь, пожалуйста, помогите мне с этим –

+0

Вам нужна тильда «~» с Server.MapPath? Попробуйте rd.Load (Server.MapPath ("/ CustomerPurchaseBill.rpt")), если этот файл RPT находится в корневом каталоге вашего сайта. –