Không thể tải tệp hoặc lắp ráp 'System.Web.Mvc'


200

Ứng dụng web ASP.NET MVC mới của tôi hoạt động trên máy trạm phát triển của tôi, nhưng không chạy trên máy chủ web của tôi ...


lỗi server trong ứng dụng '/'


Lỗi cấu hình

Mô tả: Đã xảy ra lỗi trong quá trình xử lý tệp cấu hình được yêu cầu để phục vụ yêu cầu này. Vui lòng xem lại chi tiết lỗi cụ thể bên dưới và sửa đổi tệp cấu hình của bạn một cách thích hợp.

Thông báo lỗi phân tích cú pháp: Không thể tải tệp hoặc tập hợp 'System.Web.Mvc, Version = 1.0.0.0, Culture = trung tính, PublicKeyToken = 31bf3856ad364e35' hoặc một trong các phụ thuộc của nó. Hệ thống không thể tìm thấy các tập tin được chỉ định.

Lỗi nguồn:

Line 44:         <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 45:         <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 46:         <add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 47:         <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Line 48:         <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

Tệp nguồn: C: \ inetpub \ www.example.org \ web.config Dòng: 46

Dấu vết tải hội: Các thông tin sau có thể hữu ích để xác định lý do tại sao không thể tải 'System.Web.Mvc, Version = 1.0.0.0, Culture = trung tính, PublicKeyToken = 31bf3856ad364e35'.

WRN: Ghi nhật ký ràng buộc hội được TẮT.
Để bật ghi nhật ký liên kết lắp ráp, đặt giá trị đăng ký [HKLM \ Software \ Microsoft \ Fusion! EnableLog] (DWORD) thành 1.
Lưu ý: Có một số hình phạt hiệu suất liên quan đến ghi nhật ký lỗi liên kết lắp ráp.
Để tắt tính năng này, hãy xóa giá trị đăng ký [HKLM \ Software \ Microsoft \ Fusion! EnableLog].

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


Tôi có cần cài đặt AspNetMVCBeta-setup.msi trên máy chủ không? Hoặc có một trình cài đặt khác nhau cho các máy chủ?

nhập mô tả hình ảnh ở đây

Câu trả lời:


215

Tôi chỉ viết một bài đăng blog giải quyết điều này. Bạn có thể cài đặt ASP.NET MVC trên máy chủ HOẶC bạn có thể làm theo các bước ở đây .


EDIT: (bởi jcolebrand) Tôi đã xem qua liên kết này, sau đó gặp vấn đề tương tự như Victor bên dưới , vì vậy tôi đề nghị bạn cũng thêm những điều sau:

* Microsoft.Web.Infrastructure
* System.Web.Razor
* System.Web.WebPages.Deployment
* System.Web.WebPages.Razor

6
Lưu ý: Khi bạn đã cài đặt MVC4 (beta hiện tại), bạn sẽ muốn lấy v1.0 của các DLL đó, bạn cũng sẽ muốn lấy System.Web.Helpers (ít nhất là tôi cần).
Tracker1

1
-1 Bài đăng của bạn mà bạn liên kết đến, không giải thích cách tải Microsoft.Web.Infr Hạ tầng đến máy chủ web thông qua cơ chế Xuất bản. Phải cài đặt mọi thứ trực tiếp trên máy chủ, loại sux.
Mark Rogers

1
với visual studio 2010, điều này đã trở nên dễ dàng hơn nhiều như được giải thích ở đây: britishdeveloper.co.uk/2011/06/ Khăn
Daniël Tulp

hoặc ở đây nếu bạn không sử dụng Web Deployment britishdeveloper.co.uk/2011/05/ trên
Jeroen K

Tôi đã phải vòi thư mục bin và sau đó Xuất bản lại, nghĩa là, nếu bạn không sử dụng Gói triển khai.
Robert Koch

41

Tôi gặp vấn đề tương tự như sgriffinusa. Ngoài các tài liệu tham khảo Bài viết của Phil gợi ý: http://www.haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx . Tôi đã thêm những điều này:

* Microsoft.Web.Infrastructure
* System.Web.Razor
* System.Web.WebPages.Deployment
* System.Web.WebPages.Razor

Triển khai Godaddy hoạt động hoàn hảo. Tắt lỗi tùy chỉnh và thêm tài liệu tham khảo để sửa lỗi. Điều đó sẽ dẫn bạn đi đúng hướng.


26

Cài đặt MVC trực tiếp trên máy chủ web của bạn là một tùy chọn, vì sau đó các hội đồng sẽ được cài đặt trong GAC. Bạn cũng có thể bin triển khai các hội đồng, điều này có thể giúp giữ cho máy chủ của bạn tránh khỏi các hội đồng phát hành trước cho đến khi có bản phát hành cuối cùng.

Phil Haack đã đăng một bài viết hay vài ngày trước về cách triển khai MVC cùng với ứng dụng của bạn, vì vậy không cần thiết phải cài đặt trực tiếp:

http://www.haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx


25

Tôi gặp vấn đề tương tự khi cố gắng triển khai ứng dụng web MVC3 Razor của mình trên dịch vụ lưu trữ chia sẻ GoDaddy. Có một số dll bổ sung cần được tham khảo. Chi tiết tại đây: http://paulmason.biz/?p=108

Về cơ bản, bạn cần thêm các tài liệu tham khảo vào sau đây ngoài các tài liệu được liệt kê trong bài đăng của @ Haacked và đặt chúng để triển khai cục bộ như được mô tả.

  • Microsoft.Web.Infr Hạ tầng
  • System.Web.Razor
  • System.Web.WebPages. Triển khai
  • System.Web.WebPages.Razor

Cảm ơn bạn, sau khi thêm thủ công tham chiếu và sau đó triển khai chúng cục bộ, nó đã khắc phục sự cố cho MVC3!
Stefanvds

Điều tương tự ở đây. Hướng dẫn tốt về việc thêm các DLL bổ sung. Cảm ơn!
Mike L

Điều tương tự ở đây. Không phải trên GoDaddy mà trên máy chủ công ty của tôi, vì vậy đây phải là một trường hợp tướng đơn thuần.
TJKjaer

13

Trong VS2010, nhấp chuột phải vào dự án trong Solution Explorer và chọn 'Thêm phụ thuộc có thể triển khai'. Sau đó kiểm tra các hộp kiểm liên quan đến MVC trong hộp thoại sau.

Điều này tạo ra một thư mục '_bin_deployableAssemblies' trong dự án chứa tất cả các tệp dll được đề cập trong các câu trả lời khác. Tôi tin rằng chúng được sao chép vào thư mục bin khi tạo gói triển khai.


9

Cách khắc phục đơn giản. Trong VS2010, nhấp chuột phải vào dự án MVC của bạn, chọn "Thêm phụ thuộc có thể triển khai ...", chọn các tùy chọn bạn muốn và nhấp vào ok


8

Giải pháp nhanh & đơn giản: Tôi gặp phải vấn đề này với Microsoft.AspNet.Mvc -Version 5.2.3 và sau khi xem qua tất cả các luồng này, tôi tìm thấy một giải pháp đơn giản nhất.

Chỉ cần làm theo các bước:

  1. Mở Trình quản lý gói NuGet trong Visual studio cho dự án của bạn
  2. Tìm kiếm Microsoft.AspNet.Mvc
  3. Khi tìm thấy, thay đổi hành động để Gỡ cài đặt và Gỡ cài đặt nó
  4. Sau khi hoàn tất, cài đặt lại và thử ngay bây giờ

Điều này sẽ tự động sửa chữa tất cả các vấn đề với tài liệu tham khảo. Xem hình ảnh dưới đây:

nhập mô tả hình ảnh ở đây


7

Có cùng một vấn đề và thêm tất cả các hội đồng mà họ nói nhưng vẫn có cùng một lỗi.

Hóa ra bạn cần phải tạo " Phiên bản cụ thể " = Sai.

Phiên bản cụ thể nên sai.


Ngoài ra, bạn nên chuyển 'Sao chép cục bộ' thành 'Đúng' nếu nó không được bật,
AStopher 15/2/2015

6

Chúng tôi muốn thêm nó bởi vì chúng tôi đang tạo một thư viện lớp sử dụng nó.

Đối với tôi nó ở đây ...

C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies


3

Nếu bạn KHÔNG sử dụng nhà cung cấp dịch vụ lưu trữ và bạn có quyền truy cập vào máy chủ để cài đặt ... Sau đó cài đặt công cụ cập nhật MVC 3, hãy làm điều đó ... nó sẽ giúp bạn tiết kiệm hàng giờ sự cố trên máy chủ windows 2003 / máy IIS6. , Tôi đã nhận xét trên trang này ở đây Nuget.Core.dll số phiên bản không khớp


3

Ngoài bài đăng Haack, Hanselman cũng có một bài tương tự. BIN Delp triển khai ASP.NET MVC 3 với Dao cạo cho Windows Server mà không cần cài đặt MVC

Đối với tôi, giải pháp "Sao chép cục bộ = đúng" là không đủ vì các tham chiếu dự án trên trang web của tôi không bao gồm tất cả các dll bị thiếu. Như Scott đề cập trong bài đăng của mình, tôi cũng cần nhận thêm các dll từ thư mục sau trong hộp phát triển của mình: C: \ Program Files (x86) \ Microsoft ASP.NET \ ASP.NET Web Pages \ v1.0 \ Assemblies. Thông báo lỗi thông báo cho tôi biết dll nào bị thiếu (System.Web.Infr Hạ tầng, System.Web.Razor, v.v.) Tôi tiếp tục thêm từng dll bị thiếu, từng cái một, cho đến khi nó hoạt động.


3

Tôi đã thực hiện "Cập nhật gói cài đặt Microsoft.AspNet.Mvc" để sửa lỗi trong Visual Studio 2015.


3

Một xem xét quan trọng là tệp web.config, Một số gói có thể xáo trộn các chuyển hướng ràng buộc của bạn gây ra sự tàn phá (gói lừa đảo nằm trong gói nhà mà tôi không gỡ web.config khỏi gói hoặc đảm bảo web.config trong gói không có bất kỳ chuyển hướng ràng buộc nào. Ví dụ: bằng cách loại bỏ nút trùng lặp và không chính xác sẽ giải quyết điều này

    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>


                <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
                <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
                <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0"/>
                <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
                <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>


                <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="SimpleInjector" publicKeyToken="984cb50dea722e99" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.3.2.0" newVersion="3.3.2.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="HtmlAgilityPack" publicKeyToken="bd319b19eaf3b43a" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-1.4.9.5" newVersion="1.4.9.5"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>

bằng cách loại bỏ các dòng 8 đến 24 sửa lỗi bản dựng.


2

Đồng thời kiểm tra phiên bản lắp ráp trong web.config trong thư mục Lượt xem của bạn và đảm bảo nó khớp. Đôi khi tôi quên rằng có một web.config thứ 2 ở vị trí đó.



2

Tôi đã có cùng một vấn đề với một loạt các tập tin lắp ráp sau khi chuyển dự án sang một giải pháp khác.

Đối với tôi, web.configtập tin đã cố gắng thêm phần này:

<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

Nghĩ rằng tham chiếu trong dự án đã hướng tới phiên bản 3.0.0.0(nhấp vào tham chiếu và cuộn xuống dưới cùng của các thuộc tính). Do đó tôi chỉ thay đổi phiên bản tham chiếu trong web.configtập tin.

Tôi không biết nếu đây chỉ là một lỗi nào đó. Vấn đề với việc thêm tất cả các tham chiếu khác là các tham chiếu xuất hiện trong tệp cấu hình nhưng thực tế nó không được tham chiếu trong dự án (bên trong trình khám phá giải pháp) và các tệp cần thiết không được sao chép với các tệp dự án còn lại, có lẽ là do không được"copy local = true"

Bây giờ, tôi đã có thể tìm thấy các hội đồng này trong các hội đồng có thể bổ sung (bằng cách nhấp chuột phải vào tham chiếu và cố gắng thêm chúng từ các hội đồng hoặc tiện ích mở rộng). Thay vào đó, tôi đã tạo ra một giải pháp MVC mới có thêm tất cả các tập hợp và tham chiếu tôi cần, và tìm chúng theo các tham chiếu dự án mới trong trình khám phá giải pháp và tìm đường dẫn của chúng trong cửa sổ thuộc tính để tham khảo.

Sau đó, tôi chỉ sao chép các thư viện tôi cần vào dự án khác và tham chiếu chúng.


1

Sau khi thử mọi thứ mà vẫn thất bại, đây là giải pháp của tôi: tôi nhớ tôi đã gặp lỗi và cập nhật phiên bản MVC trong Visual studio của tôi để tôi chạy dự án từ một Visual studio khác (máy tính khác) và đã tải lên dll-s và nó hoạt động. có lẽ nó sẽ giúp được ai đó ...


0

Tôi đang sử dụng Jenkins với các dự án .net và gặp rắc rối với các tham chiếu MVC 4.

Cuối cùng tôi đã giải quyết vấn đề của mình bằng cách sử dụng chức năng công cụ tìm kiếm tham chiếu .Net dựa trên sổ đăng ký bằng cách sử dụng:

"HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft.NETFramework \ v2.0.50727 \ HộiFoldersEx"

Bạn có thể tạo khóa con et đặt khóa mặc định thành "c: \ myreferenceedir" chẳng hạn.

Nó đã cứu tôi với các phiên bản MVC và cả các trang Web ASP.net.

Sử dụng đầy đủ để thêm các tham chiếu đến "Thêm hộp thoại tham chiếu"

http://dhakshinamoorthy.wordpress.com/2011/12/04/how-to-register-your-net-assinstall-in-gac-and-make-it-show-in-add-reference-dialog/


0

Như những người khác đã đề cập, thêm các giới thiệu này vào các studio hình ảnh Copy Localđược thiết lập true. (Tôi cũng phải thêm System.Web.Webpages)

Microsoft.Web.Infrastructure
System.Web.Razor
System.Web.WebPages.Deployment
System.Web.WebPages.Razor
System.Web.Webpages

0

Tôi đã thêm "Microsoft ASP.NET Razor" bằng cách sử dụng Gói NuGet.

Với Thêm tài liệu tham khảo, vì một số lý do, tôi chỉ có System.Web.Helpers 1.0.0 và 2.0.0 ... chứ không phải 3.0.0.

Một tùy chọn khác, có hiệu quả với tôi là xóa các tham chiếu đến System.Web.Mvc và System.Web.Http ... sau đó thêm lại chúng vào các vị trí gói trong tệp csproj (bạn có thể dễ dàng chỉnh sửa dự án nhất với một trình soạn thảo văn bản):

<Reference Include="System.Web.Http">
  <HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll</HintPath>

<Reference Include="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll</HintPath>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.