System.Net.CookieException - ...超出配置的最大大小,即'4096'

时间:2013-07-03 16:52:54

标签: c# .net iis-7 reporting-services web-config

我正在使用带有自定义安全框架的自定义.Net应用程序。除此之外,该框架还允许用户身份验证无缝传递到SQL Server Reporting Services,以便在查看器中访问报表。但是,我收到某些用户的以下错误:

  

2013-07-03 11:43:00,580 Default.Page_Load(:0) - 已初始化   ReportServer网址:“https://www.DOMAIN.com/ReportServer”2013-07-03   11:43:00,696 ReportNavigation.LoadReportCatalog(:0) - 同时出错   从Web服务异常访问报告目录:   System.Net.CookieException消息:cookie的值大小是   ” .ActionSecurity = AAEAAAD_ _ _AQAAAAAAAAAMAgAAAE1TeXN0ZW0uV2ViLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQUBAAAALVN5c3RlbS5XZWIuU2VjdXJpdHkuRm9ybXNBdXRoZW50aWNhdGlvblRpY2tldAkAAAAIX1ZlcnNpb24FX05hbWULX0V4cGlyYXRpb24KX0lzc3VlRGF0ZQ1fSXNQZXJzaXN0ZW50CV9Vc2VyRGF0YQtfQ29va2llUGF0aBBfSW50ZXJuYWxWZXJzaW9uDV9JbnRlcm5hbERhdGEAAQAAAAEBAAcIDQ0BCAICAAAAAQAAAAYDAAAADy5BY3Rpb25TZWN1cml0eQC1nPAlRtBIAHnk1vdF0IgBBgQAAAC4GEFBRUFBQURfX19fX0FRQUFBQUFBQUFBTUFnQUFBRTlEWVdsMGFHNWxjM05OVFM1WFpXSXVVMlZqZFhKcGRIa3NJRlpsY25OcGIyNDlNUzR3TGpBdU1Dd2dRM1ZzZEhWeVpUMXVaWFYwY21Gc0xDQlFkV0pzYVdOTFpYbFViMnRsYmoxdWRXeHNEQU1BQUFCTlUzbHpkR1Z0TGxkbFlpd2dWbVZ5YzJsdmJqMDBMakF1TUM0d0xDQkRkV3gwZFhKbFBXNWxkWFJ5WVd3c0lGQjFZbXhwWTB0bGVWUnZhMlZ1UFdJd00yWTFaamRtTVRGa05UQmhNMkVGQVFBQUFEQkRZV2wwYUc1bGMzTk5UUzVYWldJdVUyVmpkWEpwZEhrdVFXTjBhVzl1VTJWamRYSnBkSGxRY21sdVkybHdZV3dJQUFBQUNWOXBaR1Z1ZEdsMGVRaGZkbVZ5YzJsdmJndGZaWGh3YVhKbFJHRjBaUXBmYVhOemRXVkVZWFJsRFY5d2NtOTJhV1JsY2s1aGJXVUpYM1Z6 WlhKT1lXMWxFMTlwYzBGamRHbHZia ......“。   这超出了配置的最大大小,即“4096”。   资源:   系统在System.Net.CookieContainer.Add(Cookie cookie,布尔   在System.Net.CookieContainer.Add(Cookie cookie)的throwOnError)   在APPNAMEMM.Reporting.WebServiceClient.ReportServerProxy.GetCookies()   在   d:\ APPNAME \代码\核心\ APPNAMEMM.Reporting.WebServiceClient \ ReportServerProxy.cs:行   131点   APPNAMEMM.Reporting.WebServiceClient.ReportServerProxy.GetWebRequest(URI   uri)in   d:\ APPNAME \代码\核心\ APPNAMEMM.Reporting.WebServiceClient \ ReportServerProxy.cs:行   71点   System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(字符串   methodName,Object [] parameters)at   APPNAMEMM.Reporting.WebServiceClient.ReportingService.ReportingService2005.ListChildren(字符串   Item,Boolean Recursive)in   d:\ APPNAME \代码\核心\ APPNAMEMM.Reporting.WebServiceClient \ WEB   参考文献\ ReportingService \ Reference.cs:第871行   APPNAMEMM.Reporting.WebServiceClient.ReportCatalogService.GetCatalogItemList(字符串   路径)   d:\ APPNAME \代码\核心\ APPNAMEMM.Reporting.WebServiceClient \ ReportCatalogService.cs:行   162点   APPNAMEMM.Reporting.WebServiceClient.ReportCatalogService.GetReportList(字符串   path,Boolean showHidden,String subFolder)in   d:\ APPNAME \代码\核心\ APPNAMEMM.Reporting.WebServiceClient \ ReportCatalogService.cs:行   116点   APPNAMEMM.Reporting.WebServiceClient.ReportCatalogService.GetReportList(字符串   path,Boolean showHidden)in   d:\ APPNAME \代码\核心\ APPNAMEMM.Reporting.WebServiceClient \ ReportCatalogService.cs:行   108点   APPNAMEMM.Reporting.WebServiceClient.ReportCatalogService.GetReportList(字符串   路径)   d:\ APPNAME \代码\核心\ APPNAMEMM.Reporting.WebServiceClient \ ReportCatalogService.cs:行   81在ReportNavigation.LoadReportCatalog()

     

2013-07-03 11:43:00,749 ASP.global_asax.Application_Error(:0) - 一个   发生意外错误。 (URL:/ Income Reports / Default.aspx
  表单字段:例外:   System.Configuration.Provider.ProviderException消息:无法   检索此操作的当前HttpContext。资源:   APPNAMEMM.Web.Security at   APPNAMEMM.Web.Security.ActionSecurity.DeleteCookie()in   d:\ APPNAME \代码\核心\ APPNAMEMM.Web.Security \ ActionSecurityProvider \ ActionSecurity.cs:行   265 APPNAMEMM.Web.Security.ActionSecurityModule.OnLeave(Object   发件人,EventArgs e)in   d:\ APPNAME \代码\核心\ APPNAMEMM.Web.Security \ ActionSecurityProvider \ ActionSecurityModule.cs:行   192.在System.Web.HttpApplication.RaiseOnPreSendRequestHeaders()

我已经尝试根据包括http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimitshttp://bartwullems.blogspot.com/2010/04/uploading-large-files-in-iis-7.html

在内的一些建议更改app和ReportServer和ReportManager文件夹中的web.config

但是,我仍然收到错误消息,用户无法访问报告。我还需要做些什么吗?感谢。

2 个答案:

答案 0 :(得分:2)

  1. 你们两个都设置好了吗? http://forums.iis.net/t/1169846.aspx

  2. 但是您收到的是CookieException,而不是最大请求限制异常。以上设置与cookie没有任何关系。它们指的是文件上传到服务器。

  3. 好像你想把4K塞进一个cookie。如果是这样,你就不能......这是一个系统限制What is the maximum size of a web browser's cookie's key? ..实际上你的里程可能因浏览器而异,但如果你在cookie中设置4K,你可能需要改变策略,比如切换到会话。

  4. 对N°3说是吗?你可以在这里纠正错误..但是你仍然可能遇到问题N°3: - )

  5. 取自你自己的stacktrace This exceeds the configured maximum size, which is '4096' ... at System.Net.CookieContainer.Add(Cookie cookie) ... ReportServerProxy.cs:line 131


    var container = new System.Net.CookieContainer {
        MaxCookieSize = 8192
    };
    
    container.Add(new System.Net.Cookie {
        Value = "somehugevalue"
    });
    

答案 1 :(得分:0)

localStorage限制时,您可以使用CookieStore

代码示例:

localStorage.setItem('ActionSecurity', '[largevalue]');

localStorage.getItem('ActionSecurity');

参考W3CSchools