2008-09-10 29 views
58

Di chuyển dự án từ ASP.NET 1.1 sang ASP.NET 2.0 và tôi tiếp tục gặp lỗi này.Không thể tải loại 'XXX.Global'

Tôi không thực sự cần toàn cầu vì tôi không thêm bất kỳ thứ gì vào nó, nhưng sau khi tôi xóa, tôi nhận được nhiều lỗi hơn.

+0

trùng lặp có thể xảy ra của [ "Parser Error Message: Không thể tải gõ" trong Global.asax] (https://stackoverflow.com/questions/11682216/parser -error-message-can-not-load-type-in-global-asax) –

Trả lời

53

Có một vài điều bạn có thể thử với điều này, dường như xảy ra rất nhiều và giải pháp thay đổi cho mọi người.

  • Nếu bạn vẫn đang sử dụng thư mục ảo IIS, hãy chắc chắn rằng nó được trỏ đến đúng thư mục và kiểm tra phiên bản ASP.NET được đặt, đảm bảo nó được đặt thành ASP.NET 2.0.

  • Xóa hết thùng rác/gỡ lỗi/obj tất cả. Thực hiện Giải pháp làm sạch và sau đó là giải pháp xây dựng .

  • Kiểm tra tệp dự án của bạn trong trình chỉnh sửa văn bản và đảm bảo tìm tập tin toàn cục ở đâu chính xác, đôi khi nó không thay đổi thư mục.

  • Xóa toàn cầu khỏi giải pháp và thêm lại sau khi lưu và đóng. đảm bảo tất cả các thẻ tập lệnh trong tệp ASPX trỏ đến điểm chính xác sau đó.

  • Bạn có thể thử chạy công cụ Chuyển sang ứng dụng web, công cụ này làm lại tất cả các tệp mã và dự án.

  • IIS Express được sử dụng thư mục gốc sai (xem câu trả lời trong VS 2012 launching app based on wrong path)

Hãy chắc chắn rằng bạn đóng VS sau khi bạn thử chúng.

Đó là một số điều tôi biết để thử. Hy vọng một trong số họ làm việc cho bạn.

+1

Có cách nào trong số này phù hợp với bạn không? –

+1

vâng tôi đã sử dụng những người theo thời gian và một trong số họ thường sẽ giải quyết vấn đề. –

+1

Xóa và thêm lại Global.asax là mẹo đã làm cho tôi. –

5

Tôi nhận thấy rằng điều đó xảy ra khi Global.asax. (Vb | cs) không được chuyển đổi thành một phần từng phần một cách chính xác.

giải pháp nhanh nhất là bao vây tên lớp 'toàn cầu' với [dấu ngoặc vuông] như vậy (trong VB.Net):

Public Class [Global] 
    Inherits System.Web.HttpApplication 
    ... 
+0

Tôi đã đọc ở nơi khác, nhưng tất cả của tôi không phải là một phần và họ làm việc. –

1

Tôi có vấn đề này cùng cài đặt ứng dụng của tôi đến một máy chủ. Nó đã kết thúc được dự án cài đặt, nó đã không được cài đặt tất cả các tập tin cần thiết để chạy các ứng dụng web. Tôi đã cố gắng tìm ra nơi nó đã bị hỏng nhưng cuối cùng tôi đã phải hoàn nguyên dự án về phiên bản trước đó để sửa chữa nó. Hy vọng điều này sẽ giúp ai đó ...

75

Lý do tôi gặp sự cố này là do tôi thay đổi cấu hình xây dựng. Khi tôi đặt một dự án web thành x86, nó sẽ thay đổi đường dẫn đầu ra thành bin\x86\Debug. Tuy nhiên, đường dẫn đầu ra phải là bin và máy chủ web sẽ không tìm thấy tệp nhị phân vì điều này.

Giải pháp như vậy là thay đổi đường dẫn đầu ra của trang web quay lại bin sau khi bạn thay đổi cấu hình xây dựng.

+26

+1 Đây có lẽ là câu trả lời lớn nhất từng được cung cấp khi tràn ngăn xếp. Từ ngữ một mình không đủ để bày tỏ lòng biết ơn của tôi đối với câu trả lời hữu ích đặc biệt hữu ích này. Cries of joy vang lên một nửa thế giới khi câu trả lời này được đọc và áp dụng với mức độ tuyệt vời của sự thành công và cảm giác chân thành của cứu trợ. Một ly bia lạnh đặc biệt được dành riêng cho người hướng dẫn thân yêu, đáng yêu của chúng tôi, Pieter. Có thể thưa bạn, sống một cuộc sống rất dài và rất hạnh phúc. Một đóng góp tuyệt vời. Chỉ là tuyệt vời. Cảm ơn bạn. – rism

+5

Cảm ơn. New Zealand là một chút của một ổ đĩa cho tôi, nhưng nếu tôi đã bao giờ trong vùng lân cận, tôi sẽ đưa bạn lên trên nó. –

+0

Tôi muốn thêm lời chúc mừng của tôi vào câu trả lời tuyệt vời nhất này. – Rob

3

Nếu bạn sử dụng Visual Studio 2010, lỗi này có thể xảy ra khi bạn thay đổi loại triển khai cấu hình. 3 loại là x86, x64 và chế độ hỗn hợp. Thay đổi thành cài đặt chế độ hỗn hợp cho tất cả các dự án trong giải pháp sẽ giải quyết vấn đề. Đừng quên xóa các tệp bin, Lib và thay đổi đầu ra tempdirectory nếu trang ASP.NET của bạn.

2

Điều này chỉ xảy ra với tôi và sau khi thử mọi thứ khác, tôi vừa tình cờ nhận thấy thông báo lỗi mà nhóm ứng dụng được đặt thành .Net 1.1. Tôi đã nâng cấp ứng dụng lên 2.0, được chuyển đổi thành ứng dụng web nhưng không bao giờ thay đổi hồ bơi ứng dụng:

Thông tin phiên bản: Microsoft .NET Framework Phiên bản: 1.1.4322.2490; Phiên bản ASP.NET: 1.1.4322.2494

4

Xóa tệp global.asax hiện tại và thêm tệp mới, xóa lỗi này. Điều này đã làm việc cho tôi nhiều lần.

+0

Cảm ơn bạn. Mẹo của bạn đã giúp tôi tiết kiệm rất nhiều thời gian. –

2

Điều này khiến tôi hoàn toàn mất trí và tôi không thể tìm thấy bất kỳ điều gì hữu ích để giải quyết nó. Điều này có lẽ không phải là lý do hầu hết mọi người có vấn đề này nhưng tôi chỉ hy vọng rằng một người khác sẽ được hưởng lợi từ câu trả lời này.

Điều gì gây ra sự cố của tôi là tuyên bố <clear /> trong phần cấu hình <assemblies>. Tôi đã thêm điều này bởi vì trong sản xuất nó đã được yêu cầu bởi vì có nhiều ứng dụng không liên quan trên cùng một kế hoạch lưu trữ và tôi không muốn bất kỳ người trong số họ bị ảnh hưởng bởi những người khác. Giải pháp chính xác hơn sẽ chỉ là sử dụng các biến đổi cấu hình web khi xuất bản.

Hy vọng điều này sẽ giúp người khác!

1

Trong trường hợp của tôi, mục tiêu Sau khi xây dựng trong dự án để biên dịch ứng dụng web là lý do cho lỗi này.

Xem here để biết thêm

1

Loại bỏ Language = "C#" trong tập tin global.asax giải quyết vấn đề đối với tôi.

1

Trong trường hợp của tôi, tôi đã sao chép trang web trực tuyến cục bộ và nhận lỗi này cục bộ trong Utildev Cassini cho asp.net 2.0. Nó chỉ ra rằng tôi sao chép chỉ global.asax tại địa phương và không sao chép App_code conterpart của nó. Sao chép nó đã khắc phục được sự cố.

1

Thay đổi số cổng của địa chỉ (localhost :) đã làm việc cho tôi :)

+0

Vui lòng không thêm "cảm ơn" làm câu trả lời. Thay vào đó, hãy bỏ phiếu cho các câu trả lời mà bạn thấy hữu ích. –

+0

xin lỗi: không có 50 danh tiếng để bình luận bài đăng của người khác chưa :) – rebulanyum

0

Đảm bảo dll đã biên dịch của dự án được đặt vào thư mục bin thích hợp.

Trong trường hợp của tôi, khi tôi đã thay đổi thư mục đã biên soạn của tiểu dự án của chúng tôi thành thư mục bin của dự án chính của chúng tôi, nó hoạt động.

0

Đã xảy ra lỗi này trong trường hợp của tôi, tôi đã đổi tên ứng dụng. Tôi đã thay đổi tên của Project và tên của lớp nhưng bị bỏ quên thay đổi "Assembly Name" hoặc "Root namespace" trong thuộc tính "My Project" hoặc project.

1

Khi bạn cố gắng truy cập ứng dụng khách Microsoft Dynamics NAV Web, bạn nhận được lỗi sau. Không thể tải loại 'System.ServiceModel.Activation.HttpModule' từ lắp ráp 'System.ServiceModel, Phiên bản = 3.0.0.0, Văn hóa = trung lập, PublicKeyToken = b77a5c561934e089 Lỗi này có thể xảy ra khi có nhiều phiên bản của Khuôn khổ .NET trên máy tính đang chạy IIS và IIS được cài đặt sau .NET Framework 4.0 hoặc trước Mô hình dịch vụ trong Windows Communication Foundation đã được đăng ký.

Đối với Windows 7 và Windows Server 2008, hãy sử dụng Công cụ đăng ký ASP.NET IIS (aspnet_regiis.exe,) để đăng ký phiên bản ASP.NET đúng.Để biết thêm thông tin về aspnet_regiis.exe, hãy xem Công cụ đăng ký ASP.NET IIS tại trang web của Microsoft.

thử giải pháp này https://www.youtube.com/watch?v=LNwpNqgX7qw

2

tôi sửa lại lỗi này bằng cách đơn giản chuyển từ Debug để Thả, chương trình ra mắt (Nó làm việc trên phiên bản), sau đó chuyển về Debug.

Tôi đã thử mọi thứ khác, bao gồm khởi động lại Visual Studio và không có gì hiệu quả.

0

Deletin obj, thư mục bin và xây dựng lại cố định vấn đề của tôi

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