0

前文:VisualStudioを使用せずにレガシー環境ASP.NET/.NET2.0で作業しています。現在、Notepad++とFTP。理想的とは言えませんが、これが私が現在扱っている手です。現在、IISインスタンスまたはサーバーマシンを直接/即時に制御することはできません。


次のタイプのオブジェクトFooをセッションに格納します。

this.Session["foo"] = new Foo();
this.Response.Redirect("the/second/page");

2番目のページで、セッションから取得し、使用するためにキャストしようとします。

Foo foo = (Foo) this.Session["foo"];

そして私は受け取ります:

System.InvalidCastException: Unable to cast object of type 'Foo' to type 'Foo'.

.GetType()2ページ目でタイプ名を比較すると:

Foo in session:      ASP._dev_blah_aspx+Foo  
New instance of Foo: ASP._dev_blah_aspx+Foo

ただし、経由のタイプGUID.GetType().GUIDは異なります。

Foo in session:      a67f218d-...
New instance of Foo: 267f20ea-...

これはおそらくこの質問/回答と関係がありますか?やってみますが、前文を参照してください。

4

2 に答える 2

1

コードをアップロードするときは、強制的に再コンパイルしてみてください。これを行う最も簡単な方法は、web.configに触れることです。サーバーが変更されたことを認識できるように、メモ帳++で開いて任意の場所にスペースを追加するだけです.

于 2012-10-17T17:24:52.043 に答える
0

これを防ぐもう 1 つの方法は、サイトをアップロードする前に常にプリコンパイルすることです (Visual Studio 内から発行オプションを使用します)。

于 2012-10-17T17:36:17.110 に答える