2009-01-09 4 views
1

ScriptManager 용 ASP.NET 3.5 SP1에서 사용할 수있는 새로운 CompositeScript 기능을 사용하고 있습니다.CompositeScript - 잘못된 Viewstate 오류

ASP.NET 개발 서버에서 테스트 할 때 제대로 작동하지만 IIS 웹 서버에 사이트를 게시하면 결합 된 파일을 다운로드 할 수 없으며 항상 다음 오류가 발생합니다. 잘못된 ViewState. ScripResourceHandler에 추가됩니다

쿼리 문자열은 (원인?) 꽤 긴 :

<script type="text/javascript" src="/ScriptResource.axd?d=8PM7kHuMMquT4Ta6cvC_2JLE_mKmYLeDWgV9z71Ryu5-7LRuy1v7MkEzM-M-NoE92QPDzXGBBSohhGbO17FKHqTZ9xMJx_5WaNrJTiwoFF28dlc6k02jRhN73u_Ohv7CKe-QPUdCOnzsBblNlopier7Ijd66Jp6Z0voAkZp36RzWYd64G9SOBCUs1HTu7oRQJTOlWyAd26O2r3S7Js7VX1YddtK-zO7DHa272a5-BitDkKTubnMPlwyYnW0Cn7TVK7NCjyF_o1E6wgPWY4THH56YNMtyRKeTrGFzMjTkiOmv18i2ePMHErlWYBXiL0If47bfPbNtfIeAMQAT8xX_DMBN6VR74GDlJSXQpFcGadNsKocZ4EOonDLykWf6Oq4ISr54_c-k_zzma5f6qFk1fXx8n8Vphe_QL67R-7aDlwBH9CrK-IBsuYDDeMSlTMWAZ6TRIhZSAyVANvh2VPZ8eBmGD0BpVA7D8e2vA1l6_kbC7w6CmGCEok-Cb1dqQPjgwB6Ho199M3IWrdwbUkN2leiDXn9bkZMGWA75IyjYiDisAz97JyA9AtDolhYGbxJ_AVrIpNpZFOQBZsXBkLfoo7iZmzHLwG7HNPhodtaekPAcxiKgi7Xf62DEnb20VRYMCFH8Qzfx5u4nlzZo4n7ZMkxDpWPlB65LCeCtvC6ZIl1kbq9FJ9dlf_DAkNU3-KKy__87Tzz9RWx6ucLXRGuljodLjiT8wrWRET_CpCspnHqpByBxEXiOi1_jW0e6_GjfZ9Fqk9GIXsSoTvnZmz_J68d28rSafQVKO1O06AjHCCBd7wh5mY-ISSLFaZ0pPszjdgVYxnC83ujaY9SWmRxUb_lPT4VdYG1Q02iyRO2l7BIDO-NiF77V_kklBhQRZ5ZiT3Vbf-JL6EZISThBJuh3WA2"> 

사람이 문제에 대한 해결책을 알고 있나요?

답변

2

ScriptResource.axd에 대한 링크가 유효하지 않다고 생각합니다.

AFAIK, ScriptResource.axd에있는 쿼리 문자열은 두 개의 매개 변수 (d 및 t)로 구성됩니다. d 매개 변수는 어셈블리, 해당하는 경우 버전 번호 및 해당 어셈블리에 포함 된 리소스 (즉, javascript 파일)의 이름으로 구성된 암호화 된 문자열입니다. 암호화는 컴퓨터 키를 기반으로합니다. t 매개 변수는 어셈블리가 업데이트 된 날짜입니다 (틱 단위).

Reflector를보고 System.Web 어셈블리를보고 UI.Page를 보면 DecryptString이라는 개인 메서드가 있습니다. 나는 Windows에 있지 않지만, DecryptString을 보시면 결국 "잘못된 viewstate"예외가 생길 것입니다.

복합 스크립트 및 스크립트 결합에는 몇 가지 다른 방법이 있습니다. 하지만 ScriptManager 컨트롤 중 하나 (AjaxToolKit도 있습니다)가 실제로이 문제를 가지고 있다고 생각하지 않습니다. 실제로, 나는 당신이 밖에서 몇 가지 스크립트로 항상 남아있는 것을 알게됩니다.

고려해야 할 몇 가지 자료는 다음과 같습니다. Omar Al Zabir의 코드 프로젝트 (http://www.codeproject.com/KB/aspnet/HttpCombine.aspxhttp://www.codeproject.com/KB/aspnet/fastload.aspx) Omar는 또한 성과를 다루는 좋은 책을 가지고 있습니다. http://www.codeproject.com/KB/aspnet/AspNetOptimizer.aspx.

2

오마르와 Moiz의 접근 방법, 마틴 지적의 또 다른 변화가 자신의 N2 CMS project에서 크리스티안 고용 하나입니다 CodeProject의에 또한

, Moiz Dhanji는 약간 다른 접근 방식을 가지고있다.

아이디어는 설정 파일에 각 스크립트 그룹을 설명하는 대신 각 그룹에 대해 가상 하위 폴더를 만드는 것입니다. 요청에 따라, 특별한 HTTP 처리기는 요청 된 디렉토리를 탐색하여 거기에서 발견 된 모든 파일을 처리해야합니다.