2009-02-24 12 views
21

Các lỗi đầy đủ làlớp cơ sở bao gồm các lĩnh vực 'X', nhưng kiểu của nó (System.Web.UI.ScriptManager) là không tương thích với các loại hình kiểm soát (System.Web.UI.ScriptManager)

Lớp cơ sở bao gồm trường 'ScriptManager1', nhưng loại của nó (System.Web.UI.ScriptManager) không tương thích với kiểu điều khiển (System.Web.UI.ScriptManager).

Bất kỳ ai khác gặp phải lỗi này?

+0

Dường như trùng lặp. Tham khảo câu trả lời của Mitchell ở đây: http://stackoverflow.com/questions/582492/working-with-vs2008-3-5-asp-ajax-site-on-a-2-0sp1-ajax-extesnion-1-0-server –

Trả lời

35

Tôi cố gắng sửa chữa nó bằng cách thêm này để web.config:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/> 
       <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/> 
     </dependentAssembly> 
     <dependentAssembly> 
      <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/> 
      <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/> 
     </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

Tôi tin rằng nó buộc thời gian chạy .net sử dụng các phiên bản mới của những hội đồng đó.

7

Tôi đã gặp sự cố này khi nâng cấp ứng dụng web từ .NET 2.0 lên 3.5.

Kiểm tra web.config của bạn được đặt chính xác cho .NET 3.5. Tôi thêm vào/thay đổi như sau:

<configSections> 
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
     <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
     <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> 
     <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
      <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/> 
      <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> 
      <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> 
      <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> 
     </sectionGroup> 
     </sectionGroup> 
    </sectionGroup> 
    </configSections> 

     <assemblies> 
     <!--<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>--> 
     <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     </assemblies> 

    <httpHandlers> 
     <remove verb="*" path="*.asmx"/> 
     <add verb="*" path="*.asmx" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/> 
     <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/> 
    <httpHandlers> 



     <pages enableSessionState="true" validateRequest="true"> 
      <controls> 
     <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      </controls> 
     </pages> 

    <httpModules> 
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    </httpModules> 

0

Chúng tôi gặp sự cố rất giống nhau. Nền tảng phát triển hoạt động tốt nhưng một khi trang web đã được triển khai đến trang web thử nghiệm, nó đã phá vỡ với cùng một thông báo như áp phích gốc ở trên. Chúng tôi đã có các thư mục con trong thư mục điều khiển của chúng tôi để nhóm các điều khiển người dùng cùng nhau. Vấn đề dường như là một điều khiển trong thư mục con đang cố gắng sử dụng một điều khiển trong thư mục phía trên nó. Sửa chữa đầu tiên của chúng tôi là sao chép điều khiển toplevel vào thư mục con. Chúng tôi sau đó nhấn vào ý tưởng tạo ra một thư mục con anh chị em song song và đậu xe kiểm soát ở đó. Điều đó đã khắc phục được sự cố mà không phải sử dụng (a) làm phẳng cấu trúc thư mục điều khiển của chúng tôi hoặc (b) sao chép cùng một điều khiển trong các thư mục con khác nhau.

Vì vậy, giải pháp của chúng tôi là không bao giờ đề cập đến điều khiển trong thư mục mẹ từ điều khiển người dùng trong thư mục phụ.

Tôi hy vọng điều này sẽ giúp ích.

0

Điều này cũng có thể được giải quyết bằng cách thay đổi tham chiếu dự án sang System.Web.Extensions 1.0.61025 hoặc phiên bản khác, Đảm bảo tham chiếu dự án, cấu hình web và bộ công cụ ajax khớp với cùng một phiên bản.

2

Thêm phần <runtime> ở trên khắc phục sự cố trên máy chủ và máy chủ thử nghiệm của chúng tôi, chứ không phải máy chủ trực tiếp của chúng tôi.

Nó chỉ ra rằng nếu tập tin web.config của bạn có chứa một thuộc tính xmlns của xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0" sau đó bạn sẽ nhận được một cuộc xung đột GAC:

BAD.web.config 
<?xml version="1.0"?> 
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 
etc 

nhưng phiên bản này từ máy devt được tốt:

GOOD.web.config 
<?xml version="1.0"?> 
<configuration> 
etc 

Vì vậy, hãy đảm bảo rằng tham chiếu 2.0 bị xóa khỏi đầu tệp web.config của bạn.

0

Chúng tôi có vấn đề này tương tự khi precompiling ứng dụng của chúng tôi từ dòng lệnh bằng cách sử dụng "Ứng dụng có thể cập nhật" cờ:

aspnet_compiler.exe -u 

tháo cờ -u giải quyết vấn đề này. Đừng hỏi tôi tại sao!

1

Bạn cũng có thể giải quyết vấn đề này trong tệp .vbproj (trong trường hợp của tôi). Kiểm tra các mục nhập này:

<Reference Include="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> 
    <RequiredTargetFramework>3.5</RequiredTargetFramework> 
</Reference> 
<Reference Include="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> 
    <RequiredTargetFramework>3.5</RequiredTargetFramework> 
</Reference> 

Điều này dường như cũng buộc sử dụng phiên bản 3.5 DLL.

0

Vấn đề rất giống nhau. "Lớp cơ sở bao gồm trường 'WebUserControl1', nhưng loại của nó (common_WebUserControl) là ..." các tệp đánh dấu đã thay đổi từ CodeFile= thành CodeBehind=

0

trong trường hợp của tôi, chỉ cần chuyển khung xây dựng từ 2.0 sang 3.5.

Điều này được thực hiện bằng cách nhấp chuột phải vào tên dự án (trình khám phá giải pháp hàng đầu) và chọn "Trang thuộc tính". từ đó, chọn tùy chọn xây dựng và thay đổi khung công tác.

Cần cập nhật web.config và tất cả các tham chiếu cần thiết.

HTH

Dave

0

Đã có một vấn đề tương tự cập nhật 3,5-4,0. Trong trường hợp của tôi, có một trang web gốc và thư mục ứng dụng IIS ảo bên dưới.

Mã hoạt động tốt trong các khu vực phát triển và dàn dựng của tôi.

Ngay khi nó được đưa vào máy chủ sản xuất, nó đã bị lỗi. Mặc dù mã là như nhau.

Giải pháp của tôi là xóa thư mục ảo và tạo lại thư mục đó. Đảm bảo rằng nhóm ứng dụng là chính xác và phiên bản asp.net là chính xác. (máy chủ của tôi là Windows server 2003 với IIS6).

Một lưu ý quan trọng khác - bạn không thể chạy nhiều phiên bản asp.net trong cùng một hồ bơi ứng dụng.

0

"Các lớp cơ sở bao gồm các lĩnh vực 'ScriptManager1', nhưng kiểu của nó (System.Web.UI.ScriptManager) là không tương thích với các loại hình kiểm soát (System.Web.UI.ScriptManager)."

Bất kỳ ai khác gặp phải lỗi này?

Tôi đã gặp phải loại lỗi đó nhiều lần, mặc dù không cụ thể với trình quản lý tập lệnh. Về cơ bản, điều đó xảy ra khi bạn có quyền kiểm soát một loại trên trang. Và cho phép nói rằng bạn đã nhàn rỗi trong một thời gian. Nhưng sau đó bạn đã xóa điều khiển và đặt một cái khác vào vị trí của nó với cùng một ID, đó là khi nó có thể xảy ra. Tôi tin rằng nó liên quan đến hoặc được tạo ra bởi một aspx.designer.cs lỗi thời.

Để khắc phục sự cố. Tôi đã phải thay đổi tên của ID của kiểm soát, hoặc xây dựng lại giải pháp. Tôi nghĩ có một cách khác nữa. Tôi nghĩ rằng nếu bạn có một tập tin aspx.designer.cs tên của tập tin aspx bạn có thể thay đổi nó trong đó là tốt.

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