2011-08-03 5 views
0

나는 Silvleright Business Application (Silverlight_BussApp)을 보유하고 있습니다. 이 프로젝트에는 Silverlight_BussApp 프로젝트와 Silverlight_BussApp.Web 프로젝트가 있습니다.Silverlight 4 비즈니스 응용 프로그램에서 메모장 열기

버튼 클릭 이벤트의 코드 뒤에 메모장을 채워야합니다. 브라우저 응용 프로그램에서이 기능을 사용할 수 없습니다.

Silverlight에서 허용하지 않기 때문에 프로젝트 에 WCF 서비스를 만들고 Silverlight 프로젝트의 프록시를 통해 호출했습니다. 잘 작동합니다. WCF 서비스에 코드는 다음과 같습니다

public void openFileWithNotepad(string filename) 
     { 
      try 
      { 
       if (File.Exists(filename)) 
       { 
        Process.Start("notepad.exe", filename); 
       } 
       else 
       { 
        MessageBox.Show(
          "I was unable to locate the following file: " + filename, 
          "File Not Found"); 
       } 

      } 
      catch (Exception e) 
      { 
       throw e; 
      } 
     } 

가 지금은 하나 이상의 실버 라이트 프로젝트에서이 openFile 기능을 사용해야합니다. 그래서 "WCF 서비스 프로젝트"를 만들고 WCF 서비스를 만들고 IIS에서 호스팅하며 Silverlight 프로젝트에서 프록시를 만들었습니다. 당황스럽게도 파일이 열리지 않고 "파일을 찾을 수 없습니다"오류가 계속 나타납니다. 누군가 내 모든 Silverlight 프로젝트에이 기능을 재사용 할 수있는 방법을 알 수있게 도와 줄 수 있습니까?

IIS에서 호스팅되는 WCF 서비스에서 동일한 코드를 사용할 때 Silverlight 프로젝트의 동일한 솔루션에서 호스팅 될 때 완벽하게 작동하는 이유는 무엇입니까?

답변

1

우선 들어, Silverlight_BussApp.Web 프로젝트의 코드는 Silverlight_BussApp 프로젝트의 코드가 클라이언트에 을 실행하기 위해 진행되는 동안 서버실행하는 것입니다. 개발하는 동안 클라이언트와 서버는 표면 상으로는 같은 시스템입니다. Visual Studio에서 "실행"을 클릭하면 개발 웹 서버가 컴퓨터에서 시작되어 Silverlight 응용 프로그램이 브라우저에서 실행되는 동안 .Web 프로젝트를 호스팅합니다.
응용 프로그램을 배포하면 클라이언트 (브라우저)는 서버 (즉, IIS)와 다른 실제 컴퓨터에있을 가능성이 큽니다. 그래서 은 IIS에 의해 부과 될 수있는 다른 보안 제한 사항을 무시하므로 (아마도 "파일을 찾을 수 없음"오류가 발생하는 것일 수 있습니다) Process.Start에 대한 호출은 사용자가 ' 다시 사용하십시오.

SaveFileDialog을 사용하여 원하는 것을 클라이언트 컴퓨터에 저장 한 다음 결과 파일을 열어 보도록 안내하십시오.

+0

당신 말이 맞습니다. 하지만 난 같은 IIS에서 내 Silverlight_BussApp.Web을 호스팅했는데 나는 여전히 "파일을 찾을 수 없습니다"오류가 발생합니다. 그러면이 문제에 대한 해결책은 무엇입니까? –

+0

@New Developer 여러분이 취하는 접근 방식 (WCF 호출을 통해 서버에서'Process.Start' 호출)은 작동하지 않을 것입니다. 'SaveFileDialog'를 사용하여 파일 내용을 클라이언트 컴퓨터에 저장 한 다음이 파일을 엽니 다. '.txt' 파일 인 경우 기본적으로 메모장이 사용됩니다. – Donut

+0

SaveFileDialog를 사용할 수 없으므로 메모장이 코드 숨김으로 채워져 있으므로 최종 사용자가 볼 수 있도록 열어야합니다. –

관련 문제