1

ASP.NET 2.0 Web プロジェクトがありました。うまくいきました。サイトを 3.5 にアップグレードすることにしました。アップグレードはうまくいきました。web.config に次の行を含める必要がある IHttpHandler を追加しました。

<add verb="GET,POST" path="MyOperation.asmx" type="MyClass"/>

web.config のこの行により、次のエラーが生成されます: "パーサー エラー メッセージ: タイプ 'MyClass' を読み込めませんでした。 " これは、クラス名の典型的なスペル ミスのように聞こえます。しかし、そうではないようです。1000回チェックしました。しかし、「死の黄色い画面」ページの下部にあるのは、本当に奇妙なことです。

バージョン情報: Microsoft .NET Framework バージョン:2.0.50727.3082; ASP.NET バージョン:2.0.50727.3082

これは本当に奇妙です。プロジェクトは 3.5 に設定されています。3.5 の機能を使用する唯一のコードは、IHttpHandler の実装です。Web プロジェクトの残りの部分はすべて 2.0 と互換性があり、web.config からこの行を除外しても問題なく動作します。どうしてこれなの?

[IIS は試していません。ASP.NET 開発サーバーを使用しています。]

[編集] 申し訳ありませんが、最初のラウンドで予想していたように、それはばかげたスペルの問題でした. 私の IHttpHandler 実装はネストされたクラスにあり、適切なクラス名は「OuterClass + NestedClass」であり、構成ファイルで使用した OuterClass.NestedClass です。ただし、CLR のバージョン管理について新しいことを学べたので、貢献してくれたすべての人に感謝します。

4

4 に答える 4

4

完全修飾型名を使用する必要があると思います。

お気に入り:

<add verb="GET,POST" path="MyOperation.asmx" type="Your.Namespace.MyClass, assembly.name"/>

CLR は 3 と 3.5 で変更されていないため、2 のバージョン情報を含むエラーは正常です。唯一の変更点は、追加の個別のアセンブリと構文糖衣 (自動化されたプロパティはランタイムではなくコンパイラの機能であるように) でした。「.net 4」には新しい CLR が付属しています。

于 2009-09-07T15:57:25.360 に答える
3

バージョンは問題ではありません (と思います)。.net 2 から 3.5 sp1 は同じランタイムを使用します。新しいものは、新しいライブラリとコンパイラです。したがって、asp.net の観点からは、あまり変わっていません。

于 2009-09-07T15:58:58.183 に答える
2

ASP.NET 3.5 は、実際には 2.0 に拡張機能が追加されています。したがって、サーバーに 3.5 がインストールされている限り、2.0 フレームワークを指していることを示すメッセージによって、正しくセットアップされていることが確認されます。

この問題は、完全なクラス名、アセンブリ名が必要であるという olle の提案によるものと思われます。

また、/bin フォルダーに dll があること、およびサイトのルートから作業していない場合はアプリケーションとしてマークされていることを確認してください。

于 2009-09-07T16:11:28.140 に答える
0

プロジェクトのプロパティに移動します。[アプリケーション] タブを選択します。まだ行っていない場合は、ターゲット フレームワークを .Net Framework 3.5 に変更します。

于 2009-09-07T16:00:22.327 に答える