質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

解決済

WebRequest.Create()がフリーズするPCがある

hogemania
hogemania

総合スコア16

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

2回答

0評価

0クリップ

254閲覧

投稿2022/08/03 06:56

編集2022/08/29 15:29

前提

昔から使用している、.net 3.5を使用したVBのプログラムを新しく導入したPC(Windows10 x64)にインストールしたところ、正常に動作しないことがわかり困っています。これまでWindows7やWindows10で動作していたプログラムです。

  • .NET Framework 3.5はコントロールパネル→プログラムの機能→Windowsの機能の有効かまたは無効化で「.NET Framework 3.5(.NET2.0および3.0を含む)」のチェックボックスをONにしてインストールしました。
  • 私が確認したPCは1台だけですが、新規導入した同じ機種で症状が出ているときいています。Windows10のバージョンはすべて同じで、同じ方法で.NETはインストールしています。

実現したいこと

調べたところ、WebRequest.Create()を呼び出したっきり、返ってこない(フリーズしている)ことがわかりました。
どうすれば正常に動作させられるのか、わかる方がいらっしゃいましたら、教えてください。

発生している問題・エラーメッセージ

フリーズしてしまうのでエラーメッセージはありません。

正常に動作しているPCのWindows10のバージョン: 1909(OSビルド18363.1440)
正常に動作しないPCのWindows10のバージョン: 21H2(OSビルド19044.1826)

該当のソースコード

サンプルを作成し、同じ現象が発生することを確認しました。

VB.NET

Sub Main() Console.WriteLine("WebRequest.Create(): begin") Dim req As HttpWebRequest = CType(WebRequest.Create("http://www.google.com"), HttpWebRequest) Console.WriteLine("WebRequest.Create(): end") Dim res As HttpWebResponse = req.GetResponse() Using s As Stream = res.GetResponseStream() Using sr As StreamReader = New StreamReader(s) Console.WriteLine(sr.ReadToEnd()) End Using End Using End Sub

試したこと

  • .netのバージョンを4.8に変えてビルドしたところ、動作するのですが、問題のプログラムではほかに.net 3.5に依存したDLLを使用しているため、選択肢にならない感じです。
  • .netのソースがあればフリーズする原因が突き止められるのではないかと思いましたが、見つかりません。(オープンソースになったんじゃありませんでしたっけ?)
  • 問題のPCでデバッグしようとするとHRESULT=0x80070002がでてデバッグできないので、ふと思いついて管理者権限で実行すると正常に動作することがわかりました。しかし、管理者権限で実行しないとデバッグできず、管理者権限で実行するとフリーズしないので問題の個所を特定できず、頭を抱えています。

補足情報(FW/ツールのバージョンなど)

Visual Studio 2019を使用しています。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

hogemania

2022/08/03 07:32

.net frameworkはコントロールパネルのプログラムと機能→Windowsの機能の有効化または無効化で「.NET Framework 3.5(.NET2.0および3.0を含む)」にチェックを入れてインストールしました。
SurferOnWww

2022/08/03 07:53

それは「正常に動作しないPCのWindows10のバージョン: 21H2(OSビルド19044.1826)」ですべて設定済みで、それでも問題が出るということですか? 「PCのWindows10のバージョン: 21H2(OSビルド19044.1826)」ならどの PC でも提示されたコードで 100% 再現性があるのでしょうか?
hogemania

2022/08/03 08:04

私が確認したPCは1台だけですが、新規導入した同じ機種で症状が出ています。Windows10のバージョンはすべて同じで、同じ方法で.NETはインストールしています。
KOZ6.0

2022/08/03 08:30

Framework 3.5 を有効化した状態なら、4.8 の exe から 3.5 の dll を呼び出せるはずです。 ソースはここからダウンロードできますが、3.5 のは無いですね。 https://referencesource.microsoft.com/download.html 「Telerik JustDecompile」でデコンパイルしてみるとか https://www.telerik.com/products/decompiler.aspx dnSpy を使ってみるとか 「凄すぎて大草原不可避な.NET デコンパイラdnSpyを使ってみる」 https://qiita.com/Tokeiya/items/54fbf30cb21c77c05c41
hogemania

2022/08/03 08:57

情報ありがとうございます。試してみます。
SurferOnWww

2022/08/16 03:06

いつまでも放置しておかないで、状況を書くとかクローズするとかしてください。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。