2006年05月11日

入力ストリームは有効なバイナリ形式ではありません

  
昨日、HTTPチャネル・バイナリフォーマットを使った .NET Remotingのプログラムを作成し、実行したところ、

"入力ストリームは有効なバイナリ形式ではありません"

のメッセージがでて、実行できない。

バイナリフォーマットを指定しなければ、問題なく動くので、シリアライズ周りで何か問題が発生していそう。
IISの管理コンソールを見たら、ASP.NETのバージョンが異なることに気がつく。
なるほど、.NET Frameworkのバージョンが異なるので、シリアライズーでシリアライズの整合性が取れていないようだ。

でも、ASP.NETのバージョンを 2.0.50727 に変更してもうまくいかない。
PCを再起動しても駄目。
結局昨日は、原因が分からず、そのままにして帰宅。

で、今日、再度動かしたら、何の問題もなく動作した。
プログラムも、configファイルも何も変更していないのに...

仮想ディレクトリを作成し直したからかな?


この記事へのコメント
仮想ディレクトリは同じ名前ですか?
ASP.NETはコンパイルしたdllをシャドーコピーして持つので、それを消す必要があったんじゃないかと思います。
仮想ディレクトリを作り直すことで別のdllが作り直されたんじゃないでしょうか。
Posted by 小野@どっとねっとふぁん at 2006年05月11日 21:38
小野さん、コメントありがとうございます。
シャドウコピーまで考えが及びませんでした。同じ名前で仮想ディレクトリを作成し直した際の手順をよく覚えていないのですが、それで、DLLが作り直されたからかもしれませんね。
どうもありがとうございました。
Posted by Gushwell at 2006年05月12日 17:32
 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/50457760