3

私は絶望的です。

フレームワーク 2.0 を使用した ASP.NET (Web フォーム) の小さなプロジェクトがあります。UserControl (ASCX) を少しメンテナンスしました。私の開発マシンは完璧に動作しますが、ファイルをサーバーにアップロードすると、次の例外がスローされます。

基本クラスにはフィールド 'MyControl_1' が含まれていますが、その型 (MyControl) はコントロールの型 (ASP.MyControl_ascx) と互換性がありません

私はほとんどすべてを試しました:

これは本番サーバーでのみ発生します。名前空間でASCXをラップしようとしました:

コード:

namespace MyControl {
   ...
}

ASCX:

Inherits="MyControl.Control"

コントロールを使用する ASPX:

<%@Import Namespace="MyControl" %>
<%@ Register Src="Controls/SomeControl.ascx"  TagName="SomeControl" TagPrefix="uc2" %>
<uc2:SomeControlID="Control1" runat="server" />

コンパイル モードは固定アセンブリの名前付けを使用していないため、変更できません。

4

3 に答える 3

1

同様の問題がありました。私は修正を見つけました - ユーザーコントロールの宣言を変更してください。

運用サーバーはおそらく Web アプリを実行します。Web Apps では、ユーザー コントロール内の宣言が特定の形式であることが想定されています。ファイル ベースのプロジェクトの別の場所で作成されたユーザー コントロールを Web アプリに配置した可能性がありますか?

Web アプリのユーザー コントロールを使用すると (既定で)、CodeBehind="MyControl.ascx.vb"と の継承が得られますAppName.MyControl

ファイルベースのプロジェクトを使用するCodeFile="MyControl.ascx.vbと、MyControl.

それが機能するまで、ユーザーコントロールの宣言を変更しました。変更を加えて再コンパイルした後、運用サーバーに新しい dll を提供する必要があるようです。

于 2012-11-11T20:51:16.133 に答える
0

OPが提供したページに行きました: https://support.microsoft.com/en-us/kb/919284?wa=wsignin1.0

2番目の提案は私にとってうまくいきました:

方法 2: アプリケーションでフォルダーを並べ替える

最終的に、すべてのコントロールを同じサブフォルダーに配置したところ、問題なく動作しました。万人向けのオプションではないかもしれませんが、試してみる価値はあります。

于 2015-06-26T15:54:53.000 に答える
0

page既に含まれているがある場合はusercontrol公開するように更新されるので、この場合は公開しUsercontrol、両方のPageプリコンパイルを行います。dlls

于 2013-03-04T06:14:47.833 に答える