我正在使用itextsharp.dll创建pdf,本地它工作正常。但服务器面临以下错误.i已添加assemblyinfo.cs ..但同样的错误即将到来。具体来说,我通过添加这些引用和属性修改了AssemblyInfo.cs文件:
使用System.Security; 使用System.Security.Permissions; [assembly:AllowPartiallyTrustedCallers]
在我的表单中pdf在myDocument上抛出一个错误..它永远不会去读取它会抛出以下错误......
Document myDocument = new Document(PageSize.A4, 70, 70, 70, 70);
仍然在服务器中收到错误..任何人都可以帮我解决
>'/'应用程序中的服务器错误。 安全例外 说明:应用程序尝试执行安全策略不允许的操作。要授予此应用程序所需的权限,请与系统管理员联系或在配置文件中更改应用程序的信任级别。异常详细信息:System.Security.SecurityException:该程序集不允许部分信任的调用方。
来源错误:
第216行:HttpContext.Current.Response.End();
第217行:
第218行:}
第219行:protected void droplist_SelectedIndexChanged(object sender,EventArgs e)
第220行:{
源文件:d:\ hosting \ bookgroupadmin \ agent \ checkbeforprintconf.aspx.cs行:218
堆栈追踪:
[SecurityException:该程序集不允许部分信任的调用者。] d:\ hosting \ bookgroupadmin \ agent \ checkbeforprintconf.aspx.cs中的finalgroup_checkbeforprintconf.btn_Click(Object sender,EventArgs e):218 System.Web.UI.WebControls.Button.OnClick(EventArgs e)+105 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)+107 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)+7 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,String eventArgument)+11 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)+33 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+7350 System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+213 System.Web.UI.Page.ProcessRequest()+86 System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)+18 System.Web.UI.Page.ProcessRequest(HttpContext context)+49 App_Web_ovcuievo.18.cs中的ASP.checkbeforprintconf_aspx.ProcessRequest(HttpContext上下文):0 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+358 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)+64
版本信息:Microsoft .NET Framework版本:2.0.50727.1433; ASP.NET版本:2.0.50727.1433
答案 0 :(得分:3)
关于它的最好的事情是它可以在中等信任模式下运行 - 一旦做出微小的改变以允许部分信任的呼叫者。要进行此更改,请下载iTextSharp源代码分发(http://sourceforge.net/projects/itextsharp/files/) 修改AssemblyInfo.cs文件以添加部分受信任的调用者属性。
[assembly: AllowPartiallyTrustedCallers()]
重建iTextSharp程序集,最好进入中等信任环境。
答案 1 :(得分:2)
您使用的库很可能不支持中等信任环境(大多数共享托管公司)。它可能不是你的代码抛出错误,而是第三方 - 确保他们支持这个。
如果堆栈跟踪以您编写的代码的一部分结束,那么请提供此代码,目前尚不清楚究竟什么没有权限运行。
答案 2 :(得分:1)
我遇到了同样的问题,它通过创建另一个文件夹,将所有内容移动到该文件夹并将应用程序路径更改为新文件夹来解决。 我不能说它是如何解决的。但它对我有用。我相信它是由于IIS中的一些缓存问题。
希望这会帮助你们。
答案 3 :(得分:0)
我也遇到了这种类型的问题并按照以下链接的说明解决了。它是如此有用,它节省了我3天的辛勤工作。你可以试试这个
我做的最后两步没有提及 1.从项目中删除iTextsharp的旧参考。 2.在项目中添加新的iTextsharp dll参考。这是你做的。然后发布您的项目。不要使用旧的发布代码直接将新的itextsharp.dll粘贴到服务器中。