2010-02-02 2 views
0

다음 코드 스 니펫을 사용하여 로컬 docx 파일을 열고 Visual Studio에서 Ctrl + F5를 누르면 제대로 실행됩니다. 그냥 버튼을 클릭하면 내 컴퓨터의 Word2007이 열리고 docx가 표시됩니다. 그러나 프로덕션 서버에 응용 프로그램을 게시 한 후에 작동하지 않습니다. 같은 버튼을 클릭해도 아무런 변화가 없습니다. 누군가 왜 저에게 말할 수 있습니까?ASP.NET 응용 프로그램에서 워드 문서 열기

내가 원하는 것은 asp.net 응용 프로그램에서 클라이언트 측의 Word 2007에서 로컬 저장된 docx를 여는 것입니다. 사무실 COM 개체를 사용하고 싶지 않습니다.

내 코드 :

ProcessStartInfo psi = new ProcessStartInfo(@"winword.exe",@"/test.docx"); 
    Process.Start(psi); 

많은 감사합니다.

+0

왜 winword.exe를 열어야합니까? 파일 내용을 읽으시겠습니까? –

답변

3

코드가 클라이언트가 아닌 서버에서 Word를 열려고합니다. 개발에서 작동하는 유일한 이유는 클라이언트와 서버가 동일한 시스템에 있다는 것입니다.

브라우저 보안 제한으로 인해 클라이언트에서 Word를 열 수 없습니다. 그러나 파일에 대한 링크를 제공하면 Word가 설치되어있는 경우 파일을 다운로드하고 열 수 있습니다.

0

파일이 같은 위치에 있는지 확인하십시오.

ProcessStartInfo psi = new ProcessStartInfo() 은 서버에서 작동하며 서버 위치에서 파일을 선택하려고 시도하며 클라이언트 측 파일을 실행할 수 없습니다.

+0

그것은 서버에서 파일을 선택하려고하는 것이 아니라 서버 *에 Word *를 시작하는 것입니다. –

0

당신이 할 수있는 유일한 일은 파일을 다운로드하게하는 것입니다. 그들은 사무실이 없거나 적절한 호환 팩을 가지고 있지 않으면 열 수 없습니다.

1

클라이언트 컴퓨터에서 로컬 저장된 문서를 열려면 클라이언트의 하드 디스크 경로를 사용하여 문서에 대한 링크를 만들어야합니다. 브라우저는 사용자에게 열어 볼 권한이 있는지 물어 보지만 작동해야합니다.

코드가 작동 한 이유는 디버깅 할 때 서버와 클라이언트가 동일한 시스템이기 때문입니다. 개발 서버는 사용자 프로파일을 사용하여 실행됩니다.

프로덕션 환경에서 서버는 다른 세계에있을 수 있습니다. 스 니펫에 표시되는 C# 코드는 서버에서 실행됩니다.

관련 문제