- PR -

URLからのXMLリードについて

1
投稿者投稿内容
ターキッシュ
大ベテラン
会議室デビュー日: 2003/01/15
投稿数: 126
投稿日時: 2005-03-31 11:27
いつも勉強させていただいております。

strXMLFileName=@"http://192.168.10.10/samp/samp.xml";
XmlTextReader reader = new XmlTextReader (strXMLFileName);

によって、LAN内のsamp.xmlを読み込んでおりますが、あるマシン
から下記のエラーが出るような状態になっております。

System.Net.WebException: 基になる接続が閉じられました : リモート サーバーに接続できません。
at System.Net.HttpWebRequest.CheckFinalStatus()
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.HttpWebRequest.GetResponse()
at System.Xml.XmlDownloadManager.GetNonFileStream(Uri uri, ICredentials credentials)
at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials)
at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)
at System.Xml.XmlTextReader.CreateScanner()
at System.Xml.XmlTextReader.Init()
at System.Xml.XmlTextReader.Read()

エラーが起こるマシンは2003サーバで、
2000サーバから2000サーバへのアクセスは問題無いのですが、
2003サーバから2000サーバへのアクセスで上記エラーが発生します。

エラーが起こる2003サーバのマシンから直接ブラウザで
http://192.168.10.10/samp/samp.xml
を開くと普通に表示されますので、読み取り元のセキュリティの問題は
無いと思うのですが、2003サーバ固有の設定等何か必要なのでしょうか?

プロキシ等は使用していないのですが、以前この掲示板で話題になった
下記の記述も試してみましたが、プロキシーを使用していないので、何のIP
でも良いと思い、アクセスするサーバのIPを記述してみましが、これ自体機能
しているのかどうか怪しいです。

<system.net>
<defaultProxy>
<proxy usesystemdefault = "false" proxyaddress = "http://起動しているマシンのIP:8080" bypassonlocal = "true" />
<bypasslist>
<add address="http://起動しているマシンのIP/" />
</bypasslist>
</defaultProxy>
</system.net>

誠に原因がわからず申し訳ありませんが、ご存知の方いらっしゃいましたら
ご教授よろしくお願いします。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-03-31 13:09
ターキッシュさん、こんにちは。

引用:

エラーが起こる2003サーバのマシンから直接ブラウザで


ブラウザを起動したユーザは、そのサーバに対話的にログインしているユーザ(Administrator?)ですよね?
で、サーバの話ですから、エラーを出しているアプリケーションはWebアプリケーションとかWindowsサービス アプリケーションとかではないかと思うのですが、そうるすと実行ユーザは…?
ターキッシュ
大ベテラン
会議室デビュー日: 2003/01/15
投稿数: 126
投稿日時: 2005-03-31 14:45
きくちゃんさんご返答ありがとうございます。

引用:

ブラウザを起動したユーザは、そのサーバに対話的にログインしているユーザ(Administrator?)ですよね?
で、サーバの話ですから、エラーを出しているアプリケーションはWebアプリケーションとかWindowsサービス アプリケーションとかではないかと思うのですが、そうるすと実行ユーザは…?



2003サーバでブラウザを起動するのですが、ブラウザにURLを
http://192.168.10.10/samp/samp.xml
と記入し、IP:192.168.10.10の2000サーバにアクセスしますが、
その時でも、2000サーバ側から見るとAdministrator権限のユーザ
になるのでしょうか?

何度も申し訳ございませんが、よろしくご教授お願いします。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-03-31 15:16
ターキッシュさん、こんにちは。

引用:

2003サーバでブラウザを起動するのですが、ブラウザにURLを


ブラウザを起動するためには、デスクトップにログオンしますよね?
エラーを出しているアプリケーションが(サーバの)デスクトップにログオンしない、asp.netなどのいわゆるサーバーアプリケーションだとすれば、そこいら辺の違いや、加えて実行ユーザも違ってたりすると(ASPNETだったりNetworkServiceだったりローカルシステムアカウントだったり…)、その手の外部リソースへのアクセスに関して、何らかのセキュリティ上の制限が加えられている可能性(2003では厳しくなっているらしいし)も捨て切れませんよ、という事を言いたかったのです。あるいはXMLの提供側で弾いているのかも知れませんし。

引用:

その時でも、2000サーバ側から見るとAdministrator権限のユーザ
になるのでしょうか?


それはそちらの環境によるんじゃないでしょうか。
ターキッシュ
大ベテラン
会議室デビュー日: 2003/01/15
投稿数: 126
投稿日時: 2005-03-31 15:37
きくちゃんさんご返答どうもありがごとうございました。

引用:

ブラウザを起動するためには、デスクトップにログオンしますよね?



お陰様で何とか解決しました。
ユーザの権限の問題では無く、どうもProxyの設定の問題だったようです。
IEのオプションの設定を.NETの方でも引き継ぐらしいのですが、
IEのオプションでプロキシ サーバを使用しない設定になっていたのですが、
一度設定した情報の影響を受けていたようです。
ここで何故、チェックを外しても以前のプロキシ サーバの設定をそのまま
引き継ぐのかは疑問として残るところですが、

web.configに

<system.net>
<defaultProxy>
<proxy usesystemdefault = "false" proxyaddress = "http://IEで以前設定したプロキシーサーバのIP:8080" bypassonlocal = "true" />
<bypasslist>
<add address="http://アクセスする2000サーバのIP/" />
</bypasslist>
</defaultProxy>
</system.net>

と設定したところ、無事うまくいきました。
本当に何度もご返答頂きありがとうございました。
今後もよろしくお願いします。

1

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