2009-03-01 8 views
4

이 질문에 has been asked before의 최신 버전을 얻을 수 있지만, 1) 사용자가 2) 그들 중 누구도 다른 사람보다로서 밖으로 서없는 대답을 받아 결코 (표 현명한) 및 3) 아스 커는 것 같다 잊어 버렸어. 그래서 나는 다시 물어 가서 받아 들인 대답을 얻을 수 있습니다. 그리고 스레드의 일부 사용자는 일부 솔루션이 작동하지 않는다고 말했습니다. 장소를 어수선하게해서 유감스럽게 생각하지만, 나는 이것의 바닥에 도착할 것을 약속한다. 나는 파이어 폭스에서 내 실버 라이트 응용 프로그램을보고 할 때 힘 파이어 폭스는 실버 라이트 응용 프로그램

나는이 문제에 다른 일을 달렸다. 이미지의 위치를 ​​변경하고 움직이지 않았습니다. 내가 잘못했다고 가정했지만 IE7을 보았고 이미지가 올바른 위치에있었습니다. Firefox가 파일의 캐시 된 버전을 표시하고있었습니다. 내가 만든 변화는 나타나지 않았다.

이 더 큰 문제는 : 나는 내 응용 프로그램을 변경하면 어떻게 최종 사용자를 강제로 내 실버 라이트 응용 프로그램의 최신 버전을보고 (의 그것 긴급 오타 보정있어 가정 해 봅시다)는? isolated storage (Heuer's blog)은 실제로 서버 측에서 강제로 업데이트 할 수있는 유일한 방법입니까? Firefox 캐시를 지우는 것은 푸시 업데이트를 위해 작동하지 않습니다. 최종 사용자가 아무 것도하지 않고 전파하기 위해 업데이트가 필요합니다.

업데이트 : Dino Esposito 구체적으로는 응답 개체의 속성을 만료하여,이를 제어하는 ​​방법에 대한 몇 가지 아이디어가 있습니다. 아직 이것을 시도 할 기회가 없었습니다.

답변

1

먼저 모든 레이아웃이나 코드를 변경 한 후에 응용 프로그램을 빌드해야합니다. Silverlight는 HTML이 아니며 로컬에서 실행되는 코드입니다.

둘째,이에 대한 실제 솔루션 :

  1. page.xaml로드,
  2. 웹 서비스가 파이어 폭스를 감지 기본 페이지에 앉아 웹 서비스에 비동기 개막
  3. 파이어 폭스의를 말한다면 응답은 즉시

    [OperationContract] 
    public bool DetectFirefox() 
    { 
        if ((HttpContext.Current.Request.Browser.Browser == "Firefox") && 
         ((HttpContext.Current.Request.Browser.MajorVersion >= 2))) 
        { 
         HttpContext.Current.Response.Expires = -1; 
        } 
        return true; 
    } 
    
만료

여기서주의해야 할 점은 코드를 삽입하기 전에 해당 코드를 추가해야한다는 것입니다. 그렇지 않으면 FF3은 응답 만료가없는 이전 버전의 코드를 실행하게됩니다.

2

파일 이름에 버전 번호 또는 타임 스탬프를 인코딩 할 수 있습니까? 그렇게하면 페이지가 변경되면 Firefox는 완전히 다른 리소스를 가리키고 그것을 다시로드합니다.

+0

이 답변은 다른 질문에 대한 답변 중 하나이며 아마도 가장 좋은 해결책 일 것입니다. URL을 변경하면 브라우저에서 새 앱을 다운로드 할 수 밖에 없습니다. – Kibbee

+0

코드에서 파일 이름을 변경 하시겠습니까? 그게 내가해야 할 일이 아니길 바래 ... – jcollum

관련 문제