2013-07-25 102 views
3

我正在使用Sitefinity作爲Visual Studio 2012中的解決方案。我在64位計算機上。我剛剛安裝了Windows Identity Manager,因爲在此之前我收到了另一個錯誤,並且與沒有安裝它有關。現在,我收到此錯誤:在Sitefinity API中爲文件系統上已存在的文檔創建文件

解碼時發現無效數據。 描述:執行當前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

這是什麼導致我安裝微軟身份管理器。我不知道如何解決這個問題。

+0

此外,我發現這個錯誤只發生在使用IE 10進行調試時發生。如果我使用Firefox進行調試,則不會收到此錯誤。我仍然想知道你爲什麼。這是一個謎...... – meme

+0

只有在Visual Studio中調試時纔會發生此錯誤嗎?或者還部署到IIS? –

回答

0

在.Net 4.5之前的Microsoft的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爲早期版本的.NET框架的超過4.5

至於Firefox和IE瀏覽器之間的區別 - 他們可能會用不同的IIS同時使用gzip壓縮,提琴手可能是交互如果您查看原始HTTP請求和響應,可以告訴您更多有關您的情況的差異。檢查瀏覽器之間的請求順序是否相同。我的直覺是,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的實現來調用兼容方法,該方法沒有相同的錯誤。

相關問題