Web ルートで ASP.NET MVC 1.0 アプリケーションを実行しているサーバーに ASP.NET 4.0 (Web フォーム) プロジェクトを展開しようとしています。ゆっくりと進めていましたが、壁にぶつかったため、MVC フレームワークのバージョン 2.0 と .NET フレームワークの 4.0 に対して MVC アプリを再コンパイルすることにしました。そのためにいくつかのツールを使用しました。
プロジェクトは正常に変換されたように見えますが、コンパイルに失敗します。具体的には、System.Web.HttpContextBase に問題があるようです。
たとえば、次のコードがあるとします。
context.HttpContext.Response.Clear();
次のエラーが表示されます。
'System.Web.HttpContextBase' does not contain a definition for 'Response' and no extension method 'Response' accepting a first argument of type 'System.Web.HttpContextBase' could be found (are you missing a using directive or an assembly reference?)
確認のためにオブジェクト エクスプローラーをチェックしました。HttpContextBase には Response というプロパティがあります。このことは私を夢中にさせています。
私には別の大きな問題があり、それが関連していると私は信じています。Request オブジェクトが照会されるときはいつでも:
Request["old"];
それは言います:
Cannot apply indexing with [] to an expression of type 'System.Web.HttpRequestBase'
私が知る限り、これにも理由はありません。
私は途方に暮れています。MVC 2.0 の重大な変更のドキュメントを確認しましたが、これに関連するものは何も見つかりませんでした。参考文献はすべて私には良さそうです。バージョン番号はすべてチェックアウトします。
サーバーの問題に関する追加のメモ: ftp 以外のデプロイメント Web サーバーへのアクセス権がありません。サーバー構成をいじることができません。そのため、これは少し奇妙に聞こえるかもしれません。