- PR -

匿名アクセスを無効にしたら、TreeViewでエラー

1
投稿者投稿内容
虎男
会議室デビュー日: 2005/10/28
投稿数: 5
投稿日時: 2005-10-28 14:48
いつも参考にさせていただいております。

ASP.NETで、Internet Explorer WebBrowserコントロールのTreeViewを使用していますが、
IISで匿名アクセスを無効にしたらエラーが発生してしまいました。

以下、エラーの内容です。
---ここから---
「ルート レベルのデータが無効です。 行 1、位置 1 です。」
例外の詳細: System.Xml.XmlException: ルート レベルのデータが無効です。 行 1、位置 1 です。

スタック トレース:
[XmlException: ルート レベルのデータが無効です。 行 1、位置 1 です。]
System.Xml.XmlTextReader.ParseRoot() +295
System.Xml.XmlTextReader.Read() +127
Microsoft.Web.UI.WebControls.TreeView.ReadXmlSrc(String TreeNodeSrc, String TreeNodeXsltSrc, String strOuter) +127
Microsoft.Web.UI.WebControls.TreeView.ReadTreeNodeXmlSrc() +70
Microsoft.Web.UI.WebControls.TreeView.OnInit(EventArgs e) +90
System.Web.UI.Control.InitRecursive(Control namingContainer) +241
System.Web.UI.Control.InitRecursive(Control namingContainer) +179
System.Web.UI.Control.InitRecursive(Control namingContainer) +179
System.Web.UI.Page.ProcessRequestMain() +197
---ここまで---

バージョン情報 :
Microsoft .NET Framework バージョン :1.1.4322.2032;
ASP.NET Version:1.1.4322.2032

フォルダのアクセス権はEveryoneフルコントロールです。

TreeViewは匿名アクセスでないとだめなのでしょうか?
そんなことはないと思うのですが・・
葉瀬崎浩樹
大ベテラン
会議室デビュー日: 2005/06/28
投稿数: 115
お住まい・勤務地: 兵庫県
投稿日時: 2005-10-28 15:20
そのメッセージは、たしか。。
TreeViewの設定を外部ファイルで持ってるときに、
そのXML構造に誤りがあった場合に出たような記憶が、
あるような無いような。。

というわけで。
外部ファイルに持ってるとして。
そのファイルの中身とか、
配置しているフォルダのアクセス権あたりが
原因になってるかも知れません。

まあ、ダメモトで見てくらさい。
葉瀬崎浩樹
大ベテラン
会議室デビュー日: 2005/06/28
投稿数: 115
お住まい・勤務地: 兵庫県
投稿日時: 2005-10-28 15:48
海の向こうのMark Goldinさんも困ってるようです。
Errors running treview
やはり匿名アクセスが問題なんですかね。。

と思って探してたら、見つかったかも!
なんか解決方法が書いてあるような気がします。
Basic Question with TreeNodeSrc
#デモ、ワタシハエイゴガヨメナイデス。

ちなみに「IEWC XmlException Anonymous」で検索しました。

[ メッセージ編集済み 編集者: 葉瀬崎浩樹 編集日時 2005-10-28 15:50 ]

ちょっと、トイレに行ってる間に思いついたことを書いてみます。
TreeViewの設定を外部XMLファイルに持っているとして、
TreeViewコントロールのプロパティに、XMLファイルのURLを記述している状態だとします。
そのURLの仮想ディレクトリには、Web共有がかかっているはずですが、
そこの権限は大丈夫でしょうか?

[ メッセージ編集済み 編集者: 葉瀬崎浩樹 編集日時 2005-10-28 16:05 ]
虎男
会議室デビュー日: 2005/10/28
投稿数: 5
投稿日時: 2005-10-28 17:33
早速のご回答いただきましてありがとうございます。

ソースは以下をそのまま実行しています。
http://www.atmarkit.co.jp/fdotnet/dotnettips/283asptreeview1/asptreeview1.html

>#デモ、ワタシハエイゴガヨメナイデス。
実は私も・・。しかし教えていただいたURLはかなり似た状況のようです。
ありがとうございます!今、必死に翻訳中です。

>そのURLの仮想ディレクトリには、Web共有がかかっているはずですが、
>そこの権限は大丈夫でしょうか?
確認しましたが大丈夫でした。
虎男
会議室デビュー日: 2005/10/28
投稿数: 5
投稿日時: 2005-10-28 18:21
できました!ありがとうございました。

<ie:TreeView id="tree" runat="Server"
SystemImagesPath="/webctrl_client/1_0/treeimages"
TreeNodeSrc="sitemap.xml"> // ←これの行を削除
</ie:TreeView>
↓↓↓↓↓
<ie:TreeView id="tree" runat="Server"
SystemImagesPath="/webctrl_client/1_0/treeimages"
</ie:TreeView>

さらに、CodebehindのPage_Loadイベント時で設定した
↓↓↓↓
protected Microsoft.Web.UI.WebControls.TreeView tree;
private void Page_Load(object sender, System.EventArgs e) {
this.tree.TreeNodeSrc = Server.MapPath("sitemap.xml");
this.tree.DataBind();
}

でも、何でこうすればできるのでしょうか。
もうちょっと調べないと・・
1

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