- - PR -
ノータッチデプロイメントで起動したWindowsフォームでXmlSerializerが使用できない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-11-11 15:34
はじめまして。よろしくお願いします。
ASP.NETのWebシステムから、ノータッチデプロイメントで Windowsフォーム(VB.NET2003)をイントラ内のクライアントPC上で 起動させるシステムを作成しています。 サーバに置かれたXMLファイル名を起動パラメータとして付加した exeへのURLをASP側に配置し、 (http://server/test.exe?xml=TestConfig0001.xml) クライアントで起動したアプリケーションは起動パラメータから XMLファイル名を取得し、 このXMLの内容によってWindowsフォームの振る舞いを変えたいのですが、 パラメータ中に指定されたXMLファイル (ASP.NET側で"TestConfig"クラスをXMLシリアライズして作成したもの)を System.Xml.Serialization.XmlSerializerクラスのDeserializeメソッドで オブジェクトに復元しようとすると アプリケーション中でXmlSerializerを初期化する際に例外が発生します。 serializer = New XmlSerializer(GetType(TestConfig)) ↓↓↓ System.Configuration.ConfigurationException: XMLファイル http://server/test.exe?xml=TestConfig0001.xml.config 指定されたエンコードに 無効な文字があります。行1、位置3です。の読み込みに失敗しました。 ノータッチデプロイメントではなく、普通にクライアント上でexeを起動すれば 初期化時も例外は発生せず、デシリアライズも上手くいきます。 また、ノータッチデプロイメントで起動する場合も、パラメータが無ければ (http://server/test.exe)デシリアライズ出来ます。 XmlSerializerのコンストラクタ中で"http://server/test.exe.config"というファイルを 読むのが正しい挙動のようですが、何故ノータッチデプロイメント上では こうした挙動になるのでしょうか? [ メッセージ編集済み 編集者: ひびの 編集日時 2003-11-11 16:59 ] | ||||
|
投稿日時: 2003-11-12 12:58
以前この会議室で紹介されていたURLが参考になると思います。 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnforms/html/winforms05152003.asp Server-Side Support for NTD Arguments 以降に理由と対策が記述されています。 | ||||
|
投稿日時: 2003-11-13 12:58
ひびのです。
ご返事ありがとうございます。 上記のサイトにあった説明通りに ASP.NETのweb.configとIISの設定を行ったところ ちゃんとXmlSerializerが使えるようになりました。 これからもっとじっくり読んでみようと思います・・・ ありがとうございました。 |
1