- PR -

ノータッチデプロイメントでconfigファイルの読み取りに失敗

投稿者投稿内容
kkk
常連さん
会議室デビュー日: 2004/09/17
投稿数: 33
投稿日時: 2005-05-14 18:01
ノータッチデプロイメントをWindowServer2003をサーバとして実装したいのですが、クライアントにて、configファイルをGETできていないようで、動きません。(IISログでconfigをGetするときに404エラーがでてる)
XPをサーバにしてみると動作します。

同じような問題に遭遇したなど、関連情報がありましたら、ご指導お願いいたします。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2005-05-14 19:03
引用:

configをGetするときに404エラーがでてる)
XPをサーバにしてみると動作します。

同じような問題に遭遇したなど、関連情報がありましたら、ご指導お願いいたします。



ヘルプのどこかにはっきり書いてあるはずですが、デフォルトでは、拡張子.config はダウンロード禁止として設定されています。

でないと、ASP.NET アプリケーションの web.config がダダ漏れになってしまい、セキュリティのも何もあったもんじゃありません。

「サーバから(直接).config をダウンロードさせる」のは止めて、別な方法を模索する他無いと思います。

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
kkk
常連さん
会議室デビュー日: 2004/09/17
投稿数: 33
投稿日時: 2005-05-14 19:32
渋木様

お返事ありがとうございました。
今回は、Webアプリではなく、WindowsアプリをND(ノータッチ)で配布ですので、configはWeb.configでなく、exe名称.configの読み込みの問題です。
セキュリティ面はVPNを使用してセキュリティレベルをあげることとなっています。


渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2005-05-15 03:04
引用:

今回は、Webアプリではなく、WindowsアプリをND(ノータッチ)で配布ですので、configはWeb.configでなく、exe名称.configの読み込みの問題です。
セキュリティ面はVPNを使用してセキュリティレベルをあげることとなっています。



ということなら、お好きなだけ IIS の設定を緩めてください。

一応もう一度注意しておきますが、ダウンロードの許可は拡張子に対してしか設定できません。

なので、.exe名称.config のダウンロードを許可するにためには、拡張子 .config 全般に対するダウンロード許可する他ありません。

そうすると、結果的に Web.config も(URL さえ知っていれば)ダウンロードできる状態になってしまい、セキュリティ的にはよろしくないということです。

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2005-05-15 14:34
確か.NET Frameworkの1.1以降?では、
*.exe.configに対しては*.configと別のハンドラが割り当てられていて
デフォルトだと普通にダウンロードできたと思います。

とりあえず、IISとASP.NETのどちらで切られてるか分からないですかね?
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2005-05-15 15:29
引用:

確か.NET Frameworkの1.1以降?では、
*.exe.configに対しては*.configと別のハンドラが割り当てられていて
デフォルトだと普通にダウンロードできたと思います。



できましたっけ?

IIS の拡張子マッピングを見てみましたが、.exe.config の設定は見当たりませんでした。

# 見たのが XP=IIS5 だから?

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
nanbu
大ベテラン
会議室デビュー日: 2004/08/19
投稿数: 178
投稿日時: 2005-05-15 16:26
引用:

okaさんの書き込み (2005-05-14 19:32) より:

configはWeb.configでなく、exe名称.configの読み込みの問題です。


南部です。

試してみました。

環境:
Window Server 2003 SP1
.NET Framework 1.1 SP1
 (サーバ、クライアントは同一マシン)

test.exe.config ⇒ ○
test.config ⇒ エラーページ
Web.config ⇒ エラーページ

サブディレクトリにおいても同様でした。

machine.configで
<httpHandlers>

<add verb="GET,HEAD" path="*.exe.config" type="System.Web.StaticFileHandler" />
<add verb="*" path="*.config" type="System.Web.HttpForbiddenHandler" />

</httpHandlers>
のようにハンドラが定義されてますので、、、

というか、404?403ではなく?
ファイル名間違っていません?
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2005-05-15 21:16
引用:

渋木宏明(ひどり)さんの書き込み (2005-05-15 15:29) より:
できましたっけ?
IIS の拡張子マッピングを見てみましたが、.exe.config の設定は見当たりませんでした。


多分、IISのマッピングでは拡張子の最後の部分でしか設定できないので、
IISでは.configでまとめて設定、ASP.NETのハンドラで切り分けってことじゃ
ないですかね。

で、まず、nanbuさんのように想定のexe名.configをIEとかから直接指定してみて
正常に読み込めるかを確認してみたらどうでしょうか?
あと、IISのログを見たということですが、リクエストのURLはちゃんと想定通りになってるでしょうか?

スキルアップ/キャリアアップ(JOB@IT)