none
VB2008でホームページアクセス RRS feed

  • 質問

  • VB2008からホームページ内にあるテキストファイルを読み込むのに以下のコードを実行しました。
    自宅からアクセスするとテキストファイル全て読み込めますが
    会社からアクセスすると途中までしか読み込めません。

    VB2008のソースファイルは同じなのに、この違いは何かわからないです。
    会社のは最近VB2008をインストールしていてSP1などはインストールしていませんが
    SP1を入れると正しくなるのでしょうか。


                Dim wc As New System.Net.WebClient()

                 Dim st As System.IO.Stream = wc.OpenRead("http://xxxx/test.txt")
                'ここを変更、EUC文字としてエンコードする
                Dim sr As New System.IO.StreamReader( _
                    st, System.Text.Encoding.GetEncoding(51932))
                ss$ = (sr.ReadToEnd())
                st.Close()
                wc.Dispose()
               
    ss$の中身が自宅だと全てで、会社だと初めから途中までで全て読み込めません。
    会社のネットワークがアクセスを遮断しているのでしょうか。
    それとも、VB2008のバグでSP1などを入れなければならないのでしょうか。

    2009年5月20日 13:59

回答

  • VB2008のソースファイルは同じなのに、この違いは何かわからないです。
    会社のは最近VB2008をインストールしていてSP1などはインストールしていませんが
    SP1を入れると正しくなるのでしょうか。
    試せる環境があるのであれば、試してみれば聞くよりも早く済むんじゃないでしょうか。
    (私見ですが、変わらないと思います)

    ss$の中身が自宅だと全てで、会社だと初めから途中までで全て読み込めません。
    会社のネットワークがアクセスを遮断しているのでしょうか。
    アクセスを遮断しているのであれば、そもそも途中までも取れません。
    残念ながら、原因の推測の方向が間違っています。


    ところで、そのテキストファイルをIEやFireFox等のブラウザで取得した場合はどうなるのでしょうか?
    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    • 回答としてマーク VB136 2009年5月21日 6:37
    2009年5月20日 14:32
    モデレータ

すべての返信

  • VB2008のソースファイルは同じなのに、この違いは何かわからないです。
    会社のは最近VB2008をインストールしていてSP1などはインストールしていませんが
    SP1を入れると正しくなるのでしょうか。
    試せる環境があるのであれば、試してみれば聞くよりも早く済むんじゃないでしょうか。
    (私見ですが、変わらないと思います)

    ss$の中身が自宅だと全てで、会社だと初めから途中までで全て読み込めません。
    会社のネットワークがアクセスを遮断しているのでしょうか。
    アクセスを遮断しているのであれば、そもそも途中までも取れません。
    残念ながら、原因の推測の方向が間違っています。


    ところで、そのテキストファイルをIEやFireFox等のブラウザで取得した場合はどうなるのでしょうか?
    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    • 回答としてマーク VB136 2009年5月21日 6:37
    2009年5月20日 14:32
    モデレータ
  • 明日試してみようと思います。
    会社まで行かないと試せないので、それまで待つのがいやで、聞いてしまいました。

    もし、変わらないとするとどんなことが原因として考えられるでしょう。
    アクセスがあったときに、全て読み込む前に検知して遮断するというようなこととかでしょうか。

    普段は初めから遮断していなくて、アクセスがわかったときにブロックするというような
    ことがあるのでしょうか。
    2009年5月20日 14:39
  • >ブラウザで取得した場合はどうなるのでしょうか?

    これは気づきませんでした。これも明日試してみたいと思います。

    もしも、アクセスできるとすればVS2008の問題で、アクセスできないとすると
    VS2008とは関係がないということになると考えていいでしょうか。
    2009年5月20日 14:41
  • もしも、アクセスできるとすればVS2008の問題で、アクセスできないとすると
    VS2008とは関係がないということになると考えていいでしょうか。
    「VS2008の問題」と表現されていますが、製品に問題がある可能性って、そんなに早くから分からないものだと思います。
    多くの場合は、自分の書いたコードが間違えている、あるいはよくある罠にはまっていることです。
    今の段階で「VS2008の問題」と表現されるのは、誤った情報を伝えているように見えます。

    ブラウザでもアクセスできないならば、会社のプロキシ等の制限が何か働いている可能性はありますが、VB136さんのネットワーク環境について知っているわけではないので、言い切れません。
    情報管理部門等、社内のインフラを担当する部門・担当者に問い合わせて下さい。

    普段は初めから遮断していなくて、アクセスがわかったときにブロックするというようなことがあるのでしょうか。
    そのファイヤウォールソフト等によるかと思います。
    可能性として0ではないが、高いとも言い切れません。

    例えば、Winnyの通信を検知して遮断するソフトは、接続の段階では判断できませんので、通信内容を評価して遮断します。
    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    2009年5月20日 15:13
    モデレータ
  • まさかとは思いますが、ダウンロード対象のファイルが実はEUC-JPエンコーディングではないということはありますか?
    Windows環境でテストしているので、一般的にはSHIFT_JISやutf-8などになるはずですが。
    2009年5月20日 21:25
  • みなさま、回答ありがとうございました。
    いろいろと参考になりました。

    Visual Studio 2008 SP1をインストールしたら、正常動作するようになりました。



    2009年5月21日 6:34
  • Visual Studio 2008 SP1をインストールしたら、正常動作するようになりました。
    先の投稿において、恐らくないだろうと強い口調で言い切って申し訳ありません。


    どの辺の変更なんかなぁ…。
    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    2009年5月21日 13:06
    モデレータ