3

WinFormsアプリをCitrix環境に展開しようとしています。他の物理マシンや仮想マシンではしばらくの間確実に機能していますが、Citrixデスクトップでアプリケーションを実行している場合にのみ失敗します。

失敗は通常、(SQL Server 2005)データベースの汎用設定テーブルに文字列として混合タイプのデータがあり、実行時にそれらを適切なタイプに変換する場合に発生します。

たとえば、データベースのvarchar(50)列に「1」があり、読み込まれてから、次のようになります。

dim myNumericVariable as integer = Cint(dr.Item(columnName))

(ここで、drはADO.NETから出てくるDataRowです)。

スローされた例外のメッセージは次のようになります。

Conversion from string "1" to type 'integer' is not valid

この種の障害は、アプリケーション全体で発生していますが、Citrix環境でのみ発生しています。他のすべての環境では正常に動作しますが、Citrixであるという事実が単なるまぐれであり、他の根本的な理由があるかどうかはわかりません。

これはVB.NETアプリである.NET2.0であり、StrictとExplicitの両方がオンになっており、x86用にコンパイルされています。XP SP3、Windows 2003Serverx64でも完全に動作します。

私はこれで私の知恵の終わりにいます-私は全体を見渡して、なぜ私がこの振る舞いを見ているのかについてのヒントを見つけませんでした。提案をいただければ幸いです。環境やアプリの構築方法に関する詳細情報が必要な場合は、質問を喜んで編集します。前もって感謝します..

4

2 に答える 2

4

これは既知のバグです; うまくいけば、彼らはそれを修正するでしょう。

于 2009-01-24T11:12:48.183 に答える
0

ええ、私の 32 ビット Vista ラップトップでもエラーは見られないので、なんとも言えません。

多分あなたは Integer.Parse() を試すことができますか?

Dim yourVar as Integer = Integer.Parse(dr.Item("YourColName").toString())
于 2009-01-24T14:14:15.977 に答える