2010-05-10 2 views
4

개념 증명 웹 응용 프로그램을 개발 중입니다 : 사용자 PC에 설치된 Word 응용 프로그램을 여는 단추가있는 웹 페이지.웹 페이지의 버튼에서 Word 응용 프로그램 열기

Visual Studio 2008 Express (Windows XP 클라이언트, LAMP 서버)에서 C# 프로젝트가 작동하지 않습니다. 나는 튜토리얼 Writing an ActiveX Control in .NET을 따라 갔고 튜닝을 한 후에 잘 동작했다. 그런 다음 Word를 여는 데 필요한 버튼을 추가했습니다.

문제는 프로젝트에서 Microsoft.Office.Interop.Word를 참조 할 수 있지만 웹 페이지에서 액세스 할 수 없다는 것입니다. 오류는 "그 어셈블리는 부분적으로 신뢰할 수있는 호출자를 허용하지 않습니다"라고 말합니다.

.NET의 보안에 대해 많이 읽었지만 지금은 완전히 없어졌습니다. 면책 조항 : 전 .NET에 4 일 전부터 있습니다.

이 문제를 해결하기 위해 노력했지만 라이트가 보이지 않습니다 !! 나는 그것을 모른다해도 가능합니다!

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Drawing; 
using System.Data; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

using Word = Microsoft.Office.Interop.Word; 

using System.IO; 
using System.Security.Permissions; 

using System.Security; 
[assembly: AllowPartiallyTrustedCallers] 

namespace OfficeAutomation 
{ 
    public partial class UserControl1 : UserControl 
    { 
     public UserControl1() 
     { 
      InitializeComponent(); 
     } 

     private void openWord_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       Word.Application Word_App = null; 
       Word_App = new Word.Application(); 
       Word_App.Visible = true; 
      } 
      catch (Exception exc) 
      { 
       MessageBox.Show("Can't open Word application (" + exc.ToString() + ")"); 
      } 
     } 
    } 
} 
+0

그냥 메모. ActiveX는 Internet Explorer에서만 작동하며 Firefox/Chrome에서는 작동하지 않습니다. –

+1

Word를 여는 것 이상의 것을 요구합니까? 즉, 자동화 인터페이스를 추가로 사용해야합니까? 그렇지 않은 경우 버튼을 사용하여 빈 단어 문서를 다운로드 한 다음 사용자가 단어를 열도록 선택할 수 있습니다. –

+0

예, 전 자동화가 필요합니다. 두 개의 문서를 다운로드하고 비교해 보겠습니다. – Ando

답변

0

.NET Security Blog 헛간의 포스트 How to provide extra trust for an Internet Explorer hosted assembly이 문제에 점등됩니다. 그것은 2003 년으로 바뀌 었으므로 지금 상황이 바뀔 수도 있습니다 ... 모르겠습니다.

그러나 주석 asked (2006)

는 클라이언트 측에서 아무 것도 변경하지 않고 모든 신뢰 권한 와 .NET 어셈블리를 실행할 수 있습니까? 우리는 이전에 이 잘 작동하고있는 CAB에서 서명 된 ActiveX를 사용하여 을 C#으로 이식하려고했습니다.

그리고 Shawnfa

는 아니, 에 컨트롤의 클라이언트 측에 권한을 상승하실 수 없습니다

대답했다. 가장 가까운 옵션은 웹 페이지에 응용 프로그램이 포함되어 있지 않지만 응용 프로그램에 대해 응용 프로그램을 확인하고 권한을 부여 할 수있는 ClickOnce입니다.

2

.Net Framework 4 + XBAP를 사용하면 다음과 같은 작업을 쉽게 할 수 있습니다. ActiveX 대신 WPF XBAP를 사용할 수 있습니다.

프로젝트 설정 창에서 수행 할 작업 : 서명 : 모든 상자를 고정 해제합니다. (이 프로젝트는 서명 할 필요가 없습니다), 보안 탭에서 완전 신뢰로 변경하십시오.

사용자가 응용 프로그램 실행을 허용할지 묻는 메시지가 한 번 표시됩니다.

관련 문제