gpt4 book ai didi

visual-studio-2012 - 在 Sitefinity API 中为文件系统上已存在的文档创建文件

转载 作者:行者123 更新时间:2023-12-04 19:35:13 25 4
gpt4 key购买 nike

我在 Visual Studio 2012 中使用 Sitefinity 作为解决方案。我在 64 位机器上。我刚刚安装了 Windows Identity Manager,因为在此之前我遇到了另一个错误,这与没有安装它有关。现在我收到此错误:

解码时发现无效数据。 说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。

异常详细信息:System.IO.InvalidDataException:解码时发现无效数据。

来源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常来源和位置的信息。

堆栈跟踪:

[InvalidDataException: Found invalid data while decoding.]
System.IO.Compression.Inflater.DecodeDynamicBlockHeader() +6621162
System.IO.Compression.Inflater.Decode() +408
System.IO.Compression.Inflater.Inflate(Byte[] bytes, Int32 offset, Int32 length) +150
System.IO.Compression.DeflateStream.Read(Byte[] array, Int32 offset, Int32 count) +64
Microsoft.IdentityModel.Web.DeflateCookieTransform.Decode(Byte[] encoded) +396
Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler.ApplyTransforms(Byte[] cookie, Boolean outbound) +217
Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler.ReadToken(XmlReader reader, SecurityTokenResolver tokenResolver) +1958
Telerik.Sitefinity.Security.Claims.SitefinitySessionTokenHandler.ReadToken(XmlReader reader, SecurityTokenResolver tokenResolver) +44
Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler.ReadToken(Byte[] token, SecurityTokenResolver tokenResolver) +149
Telerik.Sitefinity.Security.Claims.SitefinitySessionAuthenticationModule.ReadToken(Byte[] sessionCookie) +520
Telerik.Sitefinity.Security.Claims.SitefinitySessionAuthenticationModule.TryReadFromCookie(SessionSecurityToken& sessionToken) +111
Telerik.Sitefinity.Security.Claims.SitefinitySessionAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs eventArgs) +95
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +136
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69

我也遵循了这篇文章前后的建议,但它对我不起作用: http://www.sitefinity.com/developer-network/knowledge-base/getting-type-is-not-resolved-for-member-microsoft-identitymodel-claims-claimsprincipal-exception

这就是促使我安装 Microsoft 身份管理器的原因。我不确定如何解决这个问题。

最佳答案

Microsoft 在 .Net 4.5 之前的 DeflateStream 实现中存在错误。

See here:

.NET [4 and previous] users should not use the Microsoft-provided GZipStream or DeflateStream classes under any circumstances, unless Microsoft replaces them completely with something that works.

This bug was never fixed by Microsoft对于早于 4.5 的 .NET Framework 版本

至于 Firefox 和 IE 之间的区别 - 它们在使用 gzip 压缩时可能与 IIS 的交互方式不同,如果您查看原始 HTTP 请求和响应,Fiddler 可能会告诉您更多关于您的情况的差异。检查浏览器之间的请求序列是否相同。我的直觉是 Firefox 正在退回到无压缩,而 IE 则没有,但如果没有测试平台,我将无法提供进一步的帮助。


您可以按照绝望的递增顺序尝试这三种解决方案:

  1. 看看您是否可以将 IIS 中的应用程序池更改为 SiteFinity 应用程序,并将 Visual Studio 中的 .NET 框架目标更改为以 .NET 4.5 为目标,其中 GZIP DeflateStream 方法已修复。

  2. 尝试 disable GZIP compression in IIS对于这个应用程序。按照此处相反的说明进行操作。我会最后尝试这个,因为这会对您的服务器和所有用户造成带宽损失,从而影响用户体验。

  3. 安装 DotNetZip Library ,并覆盖 Microsoft 的 System.IO.Compression.DeflateStream 实现以调用没有相同错误的兼容方法。

关于visual-studio-2012 - 在 Sitefinity API 中为文件系统上已存在的文档创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17867974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com