Giải pháp cho vấn đề: “FileNotFoundException” Với tôi nhận tính năng.

Tôi đã làm việc ngày một tính năng cuối tuần mà sẽ thêm một số sự kiện nhận vào một trường hợp cụ thể danh sách. (Tôi viết blog một chút về đó ở đây danh sách người nhận).

Bằng cách sử dụng dòng lệnh, Tôi có thể cài đặt các tính năng với không có lỗi (nhưng xem dưới đây cho lỗi ẩn). Khi tôi đã cố gắng để triển khai tính năng trên trang web, MOSS phàn nàn của một "FileNotFoundException" lỗi. Blog entry này mô tả làm thế nào tôi giải quyết nó.

Đây là lỗi MOSS đã cho thấy tôi trong trình duyệt web:

Tính năng ' b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ có thể không được cài đặt bởi vì nạp các sự kiện nhận hội "xyzzyFeatureReceiver_0" thất bại: System.io.FileNotFoundException: Không thể nạp tệp hoặc lắp ráp ' xyzzyFeatureReceiver_0’ hoặc một trong các phụ thuộc của nó. Hệ thống không thể tìm thấy tệp đã chỉ rõ.
Tên tập tin: ' xyzzyFeatureReceiver_0’
tại System.Reflection.Assembly.nLoad(Tên tập tin AssemblyName, Chuỗi codeBase, Bằng chứng assemblySecurity, Hội đồng locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
tại System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Bằng chứng assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
tại System.Reflection.Assembly.InternalLoad(Chuỗi assemblyString, Bằng chứng assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
tại System.Reflection.Assembly.Load(Chuỗi assemblyString)
tại Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
WRN: Lắp ráp ràng buộc đăng nhập bị tắt.
Để cho phép lắp ráp ràng buộc đăng nhập thất bại, Đặt giá trị sổ đăng ký [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) để 1.
Lưu ý: Đó là một số hình phạt hiệu suất kết hợp với lắp ráp ràng buộc đăng nhập thất bại.
Để tắt tính năng này, loại bỏ giá trị đăng ký [HKLMSoftwareMicrosoftFusion!EnableLog].

Khắc phục sự cố với Windows SharePoint dịch vụ.

Tôi biết làm thế nào để cố tình gây ra lỗi đó: không cài đặt lắp ráp ở gấc. Nhưng, nó đã ở gấc. Tôi thường cài đặt hội đồng thành gấc bằng cách kéo chúng vào c:\windowsassembly thư mục bằng cách sử dụng windows explorer. Tôi đã không bao giờ cảm thấy 100% thoải mái làm điều đó bởi vì tôi luôn luôn nghĩ rằng gacutil tồn tại cho một lý do … Vì vậy, tôi đã cố gắng đó. Nó làm cho không có sự khác biệt.

Tôi tìm kiếm các Internets và tìm thấy bài đăng này: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

Người gửi đã xảy ra để sử dụng cùng một gốc bit mã (từ cuốn sách bên trong WSS từ danh sách này) Vì vậy, đó là một dấu hiệu hy vọng. Tuy nhiên, theo đề nghị của trang trí hội đồng với một [lắp ráp: ] chỉ thị không có ý nghĩa với tôi. Tôi đã thử nó anyway và tôi đã đúng. Nó làm cho không có sự khác biệt.

Sau đó tôi nhận thấy rằng định nghĩa lớp của tôi đã không công cộng. Tôi đã làm cho nó công cộng và làm cho không có sự khác biệt.

Tiếp theo, Tôi đã đi đến sự cố khi tạo điều kiện cho "hội ràng buộc thất bại log" (theo các hướng dẫn hữu ích và chính xác cung cấp) và đây là nơi mọi thứ bắt đầu để có được thú vị. Nhật ký đó cho thấy tôi rằng thời gian tìm kiếm ở khắp mọi nơi trên máy chủ đó để lắp ráp của tôi. Nó thậm chí xuất hiện để tìm kiếm cho nó trong tủ thuốc của tôi. Nhưng … nó sẽ không tìm kiếm cho nó trong gấc.

Tôi đặt trên áo khoác mùa đông của tôi và đi tìm kiếm các Internets một lần nữa và tìm thấy rằng ai đó đã có vấn đề này quá. Các cuộc thảo luận dài trong bài đó peters ra vào không có gì và tôi không thể tìm thấy một giải pháp.

Tôi di chuyển lắp ráp của tôi vào một trong những nơi Nhật ký tuyên bố nó tìm kiếm và tôi thực hiện tiến bộ nhiều hơn một chút. Tôi đang thưởng bằng một lỗi mới trong trình duyệt khi tôi cố gắng để kích hoạt các tính năng:

Thất bại trong việc tạo ra tính năng nhận đối tượng từ hội "xyzzyFeatureReceiver_0", loại "Conchango.xyzzyFeatureReceiver" Đối với tính năng b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Giá trị không thể được null.
Tên tham số: loại
tại System.Activator.CreateInstance(Loại loại, Boolean quan)
tại System.Activator.CreateInstance(Loại loại)
tại Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Khắc phục sự cố với Windows SharePoint dịch vụ.

Thời gian cho một chuyến đi cuối cùng để các Internets!

Thời gian này tôi tìm ra, predictably đủ, RÊU vấn đề lỗi này bởi vì việc lắp ráp không phải là gấc.

Tôi muốn có được một cái gì đó tích cực ra khỏi đây và cố gắng để cảm thấy một chút tự hào rằng tôi đã tạo ra các Bỏ trốn của Hội đồng MSIL, nhưng nó không hoạt động. Tôi khó chịu chỉ là đồng bằng. Tôi tìm thấy bản thân mình muttering "gà hoặc trứng" theo hơi thở của tôi.

Tôi cuối cùng đã quyết định punt. Tôi tạo ra một dự án hoàn toàn mới và sao chép/dán mã từ dự án không làm việc incredible-cloaked-from-the-GAC-assembly hơn cho dự án này mới. (Tôi nhìn cho một lá cờ xây dựng được gọi là một cái gì đó như "ẩn từ lắp ráp ràng buộc nếu được cài đặt trong gấc" nhưng không thể tìm thấy một).

Tôi cài đặt các tính năng và kích hoạt nó và … nó hoạt động! Vì vậy, sau khi tất cả những gì, Tôi phải về cơ bản ' khởi động lại’ dự án của tôi. Đây là một lý do tại sao tôi ghét máy tính.

Tôi đã học điều gì hữu ích từ này. Tôi đã cài đặt tính năng bằng cách sử dụng dòng lệnh stsadm tất cả các ngày dài và sử dụng các "-lực lượng" lựa chọn ra khỏi thói quen. Đối với một số lý do, Tôi đã không sử dụng tùy chọn-lực lượng khi tôi cài đặt dự án mới. Thời gian này, Tôi đã thực sự, thực sự quên sao chép dự án mới này lắp ráp vào gấc. Kết quả là, Tôi nhận được rằng "FielNotFoundException" lỗi. Thời gian này, Tôi đã nhận nó từ stsadm, không khi tôi cố gắng để kích hoạt tính năng thông qua trình duyệt web. Vì vậy, -lực lượng thực sự chơi hai vai trò. Nó cho phép bạn cài đặt một tính năng sẵn có. Nó cũng cho phép bạn cài đặt một tính năng lỗi mà không thể làm việc tại thời gian chạy của đàn áp lỗi. Nó có thể nói là nhiều trong sự giúp đỡ một nơi nào đó nhưng tôi không bao giờ nhận thấy nó.

</kết thúc>

3 Những suy nghĩ trên "Giải pháp cho vấn đề: “FileNotFoundException” Với tôi nhận tính năng.

  1. Francisco

    Cũng, Tôi đã có của tôi 2 giờ hysteric nintendoSIXTYFOURRRR-trong-một-xấu-cách những khoảnh khắc khi tôi đổi tên không gian tên trên người nhận tính năng, bắt để giúp theo dõi mà bạn hoặc người khác đầu.

  2. Francisco

    Thư mục gốc của vấn đề nằm trên wsp được triển khai trong cơ sở dữ liệu sharepoint. Tôi đọc bài viết của bạn và mặc dù nó thực sự giải quyết vấn đề chúng tôi có một giải pháp rất lớn với một số dự án và hàng chục các tập tin như vậy di chuyển tất cả mọi thứ không phải là một lựa chọn.

    Không có vấn đề bao nhiêu bạn cập nhật của bạn gấc hoặc lắp ráp của bạn, những gì đem lại cho bạn gặp rắc rối là hội tại WSP hiện tại được cài đặt trên sharepoint.

    Bạn có thể dễ dàng nhận thấy rằng bằng cách cố gắng để chỉ rút lại các giải pháp (đó là nơi mà lỗi sẽ xảy ra). Tất cả mọi thứ xảy ra vào thời gian"càng đáp xếp" nên được coi là "triển khai wsp"-không chỉ dự án riêng của mình.

    Giải pháp của tôi là:

    – Trung tâm quản trị: Hủy bỏ giải pháp
    – stsadm: deletesolution
    – Visual Studio => Dự án => Gói
    – stsadm: addsolution-kích ProjectbinDebugProject.wsp
    – stsadm: deploysolution-tên project.wsp-ngay lập tức - allowgacdeployment-lực
    – Visual Studio => Triển khai

    Tôi cũng đã xóa các thư mục bin và gỡ lỗi từ dự án trước khi chạy Deploy một lần nữa, có thể không có bất kỳ tác dụng nhưng giá trị cho ý kiến.

    Điều này làm việc cho cả hai

    "Tính năng … có thể không được cài đặt bởi vì nạp các sự kiện nhận lắp ráp"

    "Không thành công để tạo ra tính năng nhận đối tượng từ lắp ráp"

    Cảm ơn!
    Francisco

  3. Tom Clarkson

    Chỉ cần bỏ ra một vài giờ cố gắng để khắc phục vấn đề này cùng và tìm thấy một giải pháp tốt hơn so với chỉ đơn giản là tái tạo dự án.

    Nó bật ra rằng đối với một số lý do Visual Studio đã thiết lập mục tiêu xây dựng để x 86 thay vì x 64 hoặc MSIL – Hội đồng đã ở gấc, chỉ cần không gấc cùng mà 64 chút SharePoint đã tìm kiếm.

Để lại một trả lời Francisco hủy trả lời

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *