2017-05-03 11 views
0

私は、この正確なコード(下記)を長年にわたり、既存の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); 

例外エラーが enter image description here

ストリームオブジェクトを取得私も多分古いの期限が切れていること、新しい資格情報を使用してみました。

はまだ.NET 4.5(Visual Studioの2010)を使用して

Watch list on next line below

コードの残りの部分は読んでファイルを解析することです。

//はそれはそれは結局のところ

   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; 
+1

スクリーンショットの例外は重要ではない場合があります。これらは、デバッガがオブジェクトのすべてのプロパティを読み込もうとしたときに生成されます。しかし、オブジェクトが実際に作成されていることがわかります(そして、命令ポインタが次の行に移動しました)。次の行 'new XmlTextReader'を実行しようとしたときに発生するエラーは何ですか? – ErikE

+0

このコードのアイデアは、私がウェブサイト上のxmlファイルからアプリケーションで実行しているソフトウェアの現在のバージョン番号を確認することです。 xmlファイルを取得できない場合、それは終了して終了します。 – user3044638

+0

私はまだエラーメッセージが何であるか、それがどの行に現れるか分かりません。誰もこの情報なしでどのように助けることができますか?私たちはマジシャンではありません。 – ErikE

答えて

0

下記のリーダーからXMLコードを読み取ると仮定、私は別のホスティングサイトに切り替え、および機能が正常に動作します。これにより、元のホスティングサイトに新たなセキュリティが課され、XMLファイルの読み込みが妨げられているようです。奇妙なことは、Webブラウザでhttpを使用してダウンロードできますが、この機能ではダウンロードできないことです。新しいホスティングサイトでは、どちらも動作します。

関連する問題