2012-05-01 44 views
5

Tôi có một ứng dụng biểu mẫu cửa sổ cũ, mà tôi muốn được hiển thị trình duyệt của người dùng nội bộ (IE8) như một ứng dụng web. Một cách tiếp cận mà tôi đã xem xét là tạo một thư viện biểu mẫu cửa sổ (dll) và để cho thấy rằng trong trình duyệt. Có rất nhiều trang web mà cho tôi biết làm thế nào để làm điều này:Tôi có thể hiển thị các điều khiển cửa sổ của người dùng bên trong IE8

Nhưng tôi không thể làm cho nó hoạt động. Tôi đã thực hiện một thư viện kiểm soát cửa sổ đơn giản và xây dựng DLL. Tôi đặt rằng trong thư mục cấp cao nhất của một trang web 7,5 IIS, cùng với một file html như thế này:

<html> 
    <body> 
    <object id='c' classid='http:TestWinCtrlLib.dll#TestWinCtrlLib.UserControl1' height='300' width='400'> 
    </object> 
    </body> 
</html> 

Trình duyệt của tôi cho thấy một hộp 300x400 với một biểu tượng nhỏ 'bức tranh' ở phía trên bên trái. Lúc đầu, IIS từ chối phục vụ tệp .dll cho lỗi 403.2 và 401.2, nhưng bây giờ tôi đã thiết lập thuộc tính persmission IIS một cách chính xác, nhật ký chỉ ra rằng nó đang được phục vụ thành công.

2012-05-01 01:28:50 ::1 GET /form.html - 8008 - ::1 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+WOW64;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+.NET4.0C;+.NET4.0E) 200 0 0 1 
2012-05-01 01:28:50 ::1 GET /TestWinCtrlLib.dll - 8008 - ::1 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+WOW64;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+.NET4.0C;+.NET4.0E) 200 0 0 23 

Tôi thậm chí không thể biết điều gì đang xảy ra. Liên kết đầu tiên ở trên có phần về báo cáo lỗi và tôi đã thêm các khóa này vào sổ đăng ký nhưng tôi không thấy bất kỳ lỗi nào. Tôi đã thử bắt đầu iexplore từ một dấu nhắc cmd, trong trường hợp lỗi có thể hiển thị trên đầu ra tiêu chuẩn, nhưng không có gì.

Error Reporting

mã quá trình tải về sử dụng hai thiết lập registry sau để báo cáo lỗi điều khiển từ thực thi mã số quản lý được triển khai sử dụng Internet Explorer.

  • HKLM \ Software \ Microsoft.NETFramework \ ExposeExceptionsInCOM
  • HKCU \ Software \ Microsoft.NETFramework \ ExposeExceptionsInCOM

...

Khi bạn gỡ lỗi mã mà bạn triển khai sử dụng Internet được quản lý Explorer, bạn có thể sử dụng các giá trị của các cài đặt này để tìm thông tin chi tiết về lỗi tải xuống mã. Ví dụ: điều này cho phép bạn xem thông tin theo dõi ngăn xếp khi ngoại lệ được ném, thay vì dựa vào báo cáo lỗi do Internet Explorer cung cấp, được thiết kế cho người dùng cuối, không phải nhà phát triển.

Có thể chức năng này không còn được hỗ trợ? Hầu hết các tài liệu tham khảo tôi tìm thấy có vẻ là 2007-2010. Có lẽ ClickOnce là cách duy nhất để thực hiện việc này ngay bây giờ. Tôi có thể làm điều đó để làm việc, nhưng mã chạy trong cửa sổ riêng của nó, không phải bên trong trình duyệt.

Tôi đã thử biên soạn thư viện bằng cách sử dụng .Net frameworks 3.5 Hồ sơ khách hàng và Hồ sơ khách hàng 4.0.Nhưng họ dường như cho kết quả tương tự.

Bất kỳ trợ giúp nào được chào - cảm ơn.

+1

Bạn phải chuyển sang triển khai ClickOnce nếu bạn dính vào WinForms, nhưng đó là một cách để triển khai WinForms (và các loại) ứng dụng client, mà không/ngoài I E. Nếu không, bạn có thể di chuyển sang Silverlight, chạy bên trong IE. Nếu bạn tìm thấy một cái gì đó hiếm khi được đề cập, sau đó rõ ràng nó không còn là cái gì bạn nên dính vào, giống như chạy ứng dụng WinForms bên trong IE. –

+0

Cảm ơn Lex. Tôi đã sử dụng thành công ClickOnce cho ứng dụng WinForms. Nó sẽ hữu ích nếu tôi có thể tìm thấy một tuyên bố có thẩm quyền từ Microsoft rằng việc chạy một thư viện biểu mẫu (không phải ứng dụng) bên trong trình duyệt không còn hoạt động nữa ... Tôi đồng ý rằng có nhiều cách tốt hơn để làm điều này, nhưng trong trường hợp này, nó không phải của tôi lựa chọn :-). – John

+1

Microsoft không giỏi công bố điều gì đó từ họ đã chết (như thế giới nguồn mở). Đối với các công nghệ ít được đề cập, bạn có thể chỉ liên hệ với bộ phận hỗ trợ của Microsoft qua http://support.microsoft.com, nơi họ có thể thực hiện gỡ lỗi nhiều hơn và cho bạn biết nguyên nhân gốc rễ là gì và cách hoạt động. Đó là thời gian, và cũng là một giải pháp không được bảo đảm. –

Trả lời

1

Bạn có thể cân nhắc sử dụng Dịch vụ máy tính để bàn từ xa để thay thế. Nó hoạt động trên ActiveX nên chỉ có Internet Explorer được hỗ trợ (mặc dù có các giải pháp của bên thứ ba cho phép bạn truy cập RDS qua các trình duyệt IE hoặc điện thoại di động).

Đối với các hướng dẫn và tài liệu hướng dẫn đi đến: http://technet.microsoft.com/en-us/library/dd647502(v=ws.10)

Các vấn đề liên quan