- - PR -
ノータッチデプロイメント&.NETリモート処理 app.configの読み込みについて
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-06-14 12:23
こんにちは。
VBでASP.NET、Windowsアプリ(ノータッチデプロイ)を開発してます。 ノータッチデプロイメントのWindowsアプリから、.NETリモート処理を使用してリモートアクセスをさせており、リモートクライアントであるWindowsアプリのリモート設定は System.Runtime.Remoting.RemotingConfiguration.Configure(type,url) で行っています。 とりあえずリモート処理は実現できていますが、リモートサーバのURL等の内容がプログラムに埋め込まれてしまっているので設定ファイルに外出しにしたいなと。 で、そのリモートクライアントのリモート設定をapp.config(〜.exe.config)に書いてみたのですが、そのapp.configをうまく読み込むことができなくて困っています。 どうも、リモート処理設定はapp.configに書いておくだけでは有効にならず、System.Runtime.Remoting.RemotingConfiguration.Configure(filename) で意図的に読み込まなくてはならないようです。←これが勘違い? そこでfilenameにいろいろ設定してみましたがエラーが出てしまいます。 例えば、以下のように @"WinUI.exe.config"(Windowsアプリの名前はWinUI.exeです) System.Runtime.Remoting.RemotingException: 例外 System.IO.FileNotFoundException: 指定されたファイルが見つかりません。 A"http://localhost/〜/WinUI.exe.config"(URL指定) System.Runtime.Remoting.RemotingException: 例外 System.ArgumentException: URI フォーマットはサポートされていません。 app.configの取得は一応できてまして、 System.Configuration.ConfigurationSettings.AppSettings.Item(key) でカスタム設定の取得を確認しています。 カスタム設定が取得できるのならば、そのファイルが取得できているはずだから、そのファイル内に書いてあるリモート処理の設定も見れるはずだー と思いまして・・・ 長々と書いてしまいましたが、よろしくお願いします。 | ||||||||||||||||
|
投稿日時: 2005-06-14 12:38
あれ、こんなオーバーロードってありましたっけ?
それであっています。リモート処理設定は自動では読み込まれません。
リモーティングで起動された場合のカレントディレクトリがどこになるかは良く知らないですが(ダウンロードキャッシュの場所?)、そこに構成ファイルがダウンロードされているわけではないのでファイルは見つからないですね。
エラー内容のとおりですが、 System.Runtime.Remoting.RemotingConfiguration.Configure(filename) はファイルしか読み込めません(URL指定によるダウンロード読み込みは出来ません)。 なので、例えば一時的ファイルとして自分でダウンロードしてから、設定を読み込ませるなどの工夫が必要になります。 | ||||||||||||||||
|
投稿日時: 2005-06-14 15:15
Overloads Public Shared Sub RegisterWellKnownClientType(WellKnownClientTypeEntry) Overloads Public Shared Sub RegisterWellKnownClientType(Type, String) この2種類のようです。
ノータッチで起動された場合、アセンブリがダウンロードされる場所は \Documents and Settings\アカウント名\Local Settings\Application Data\assembly\dl2 みたいですが、そのプロセスが動いているのはどこ?IEEXEC.exeが動いてる場所? ローカルドライブを「〜.exe.config」で検索してみましたが見当たりませんでした。 ダウンロードしてきてもファイルに保存しているわけではなくレスポンスのStreamを読んでいるだけなのかもしれませんね。
やっぱり、そうするしかないですかねー。 できれば何か自動でやってくれる方法はないかと思ったのですが・・・。 System.Net.WebRequest & System.Net.WebResponse でapp.configをとってきてファイルに保存し、 System.Runtime.Remoting.RemotingConfiguration.Configure(filename) でリモート設定を反映させるようにしました。 なちゃ様、どうもありがとうございました。 |
1