私は、この正確なコード(下記)を長年にわたり、既存のISPで使用してきました。私はちょうどそれが働いたかどうかをチェックしました - そして、もはやXMLファイルをダウンロードすることができなくなりました。 Streamオブジェクトを取得しようとすると、いくつかの例外が発生します(下記参照)。同じURLをWebブラウザに入れて同じ資格情報を提供すれば、xmlファイルをダウンロードするのに問題ありません。だから私はなぜこのコードでもううまくいきませんかわかりません。コードや資格情報、またはXMLファイルで何も変更されていません。ユーザー名とパスワードは変更されていません。私はコード内の資格情報でドメイン名を使用しようとしましたが(ウェブブラウザでは必要ありません)。Webからxmlファイルをダウンロードして読み込む機能が突然動作しなくなった
以下のメッセージが表示されたら、資格情報を渡すためのコード 必要な資格情報を持つリゾルバを作成します。
XmlUrlResolver resolver = new XmlUrlResolver();
//try username with and without domain name
// NetworkCredential nc = new NetworkCredential("[email protected]", "password1234");
NetworkCredential nc = new NetworkCredential("userxyz", "password1234");
resolver.Credentials = nc;
// Get a Stream object containing the XML file.
Uri updateXmlUrl = new Uri(UpdateCheckXmlFileUrl);
Stream Updatestream = (Stream)resolver.GetEntity(updateXmlUrl, null, typeof(Stream));
// Construct a reader using the Stream object.
XmlTextReader reader = new XmlTextReader(Updatestream);
ストリームオブジェクトを取得私も多分古いの期限が切れていること、新しい資格情報を使用してみました。
はまだ.NET 4.5(Visual Studioの2010)を使用して
コードの残りの部分は読んでファイルを解析することです。
//はそれはそれは結局のところ
reader.MoveToContent();
string elementName = "";
Version newVer = null;
string url = "";
string msiUrl = "";
if (StopWorkerThread()) return;
if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "appinfo"))
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element) elementName = reader.Name;
else
{
if ((reader.NodeType == XmlNodeType.Text) && (reader.HasValue))
{
switch (elementName)
{
case "version":
newVer = new Version(reader.Value);
break;
case "url":
url = reader.Value;
break;
case "installer":
msiUrl = reader.Value;
break;
case "date":
//elementName = elementName;
break;
}
}
}
}
}
// it gets to here and falls through to a false on the versioninfo.Error
reader.Close();
versionInfo.Error = false;
versionInfo.LatestVersion = newVer;
versionInfo.HomeUrl = url;
versionInfo.InstallerUrl = msiUrl;
スクリーンショットの例外は重要ではない場合があります。これらは、デバッガがオブジェクトのすべてのプロパティを読み込もうとしたときに生成されます。しかし、オブジェクトが実際に作成されていることがわかります(そして、命令ポインタが次の行に移動しました)。次の行 'new XmlTextReader'を実行しようとしたときに発生するエラーは何ですか? – ErikE
このコードのアイデアは、私がウェブサイト上のxmlファイルからアプリケーションで実行しているソフトウェアの現在のバージョン番号を確認することです。 xmlファイルを取得できない場合、それは終了して終了します。 – user3044638
私はまだエラーメッセージが何であるか、それがどの行に現れるか分かりません。誰もこの情報なしでどのように助けることができますか?私たちはマジシャンではありません。 – ErikE