これは絡まっています。従来のASP、Cookies、およびVB.NETのCOM +オブジェクト
私は、従来のASPで書かれたWebサイトを手渡されました.BB6 COM +オブジェクトで行われたたくさんの事が、Server.ObjectCreate()インスタンス化によってASPページから呼び出されました。このインカネーションでは、Visual Studio 2003コンバータツールを実行し、そのソリューションファイルをVS 2008にアップグレードするだけで、VB6ルーチンがVB.NETに変換されました。私に迷惑を与えているVB6のモジュールの
一つは、次の形式の行で応答クッキーの束をクリア:
ASPResponse.Cookies("SysUserCode") = ""
ASPResponseは次のように定義されて
:
Private ASPResponse As ASPTypeLibrary.Response
と設定し、オブジェクトのアクティブ化での起動:
Set ASPResponse = objContext("Response")
このモードのVB.NET変換ULE、それらの線は
ASPResponse = ContextUtil.GetNamedProperty("Response")
と
ASPResponse.Cookies("SysUserCode")() = ""
になりました(括弧の余分なペアを注意してください。
これは私のマシンでこのコードを実行すると、その行がエラーでVBエラー13を出しています。指定されたキャストは無効です。ハァッ?何をキャストしますか?
ちなみに、このモジュールは、同僚のマシンでうまく動作し、彼は私のマシンの構成と関連するコンポーネントの違いを自分のものから見ることはできません。
私は完全にここに迷っています。グーグルでは、VB.NETクッキー、またはVB.NETのCOMコンポーネントにはたくさんのものが与えられていましたが、従来のASPクッキーには何も関係ありませんでした。
私たちはどちらもIIS上で動作しています。 –
詳しい調査:ASPResponseのCookieメンバーにアクセスすると、実際に「無効なキャスト」が発生しているように見えます。 ASPResponse.Cookiesやそれを超えるものにアクセスするコードは、指定されたキャストが有効でない例外をスローします。 ASPページから渡されているものが、たとえ名前付きプロパティ "Response"によってアクセスされたものであっても、実際にはASPTypeLibrary.Responseオブジェクトではないように、設定に何か問題があるかどうか疑問に思う。ちょうど推測。まだ完全に混乱しています。 –
VB6をVB.Netに移行することは、特にVBの人があまりいない場合は、[かなり難しい](http://stackoverflow.com/questions/tagged/vb6-migration)することができます!私はいくつかの[背景を読む](http://msdn.microsoft.com/en-gb/dd408373.aspx#migrate)をお勧めします。 – MarkJ