HTTPWebRequest.Createがネットワーク上で動かない(ことがあるらしい)
HTTPWebRequest.Createが動作せずどっぷりはまってしまったのでメモ。
System.Net.HttpWebRequest req = (System.Net.HttpWebRequest) System.Net.WebRequest.Create("http://www.yahoo.co.jp");
これを実行すると例外が発生。
以下が出力されたエラー。
Message='system.net/defaultProxy' 構成セクションで指定された Web プロキシの作成中にエラーが発生しました。 data=System.Collections.ListDictionaryInternal Source=System StackTrace= 場所 System.Net.Configuration.DefaultProxySectionInternal.GetSection() 場所 System.Net.WebRequest.get_InternalDefaultWebProxy() 場所 System.Net.HttpWebRequest..ctor(Uri uri, ServicePoint servicePoint) 場所 System.Net.HttpRequestCreator.Create(Uri Uri) 場所 System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase) 場所 System.Net.WebRequest.Create(Uri requestUri) 場所 System.Net.SafeCloseSocketAndEvent.CreateWSASocketWithEvent(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType, Boolean autoReset, Boolean signaled) 場所 System.Net.NetworkAddressChangePolled..ctor() 場所 System.Net.AutoWebProxyScriptEngine.AutoDetector.Initialize() 場所 System.Net.AutoWebProxyScriptEngine.AutoDetector.get_CurrentAutoDetector() 場所 System.Net.AutoWebProxyScriptEngine..ctor(WebProxy proxy, Boolean useRegistry) 場所 System.Net.WebProxy.UnsafeUpdateFromRegistry() 場所 System.Net.WebProxy..ctor(Boolean enableAutoproxy) 場所 System.Net.Configuration.DefaultProxySectionInternal..ctor(DefaultProxySection section) 場所 System.Net.Configuration.DefaultProxySectionInternal.GetSection() msg=無効な引数が提供されました。<br />
プロキシは設定してないし、無効な引数ってのはArgumentExceptionかと調べたけどそれも違う。
そしたらなんてことはないプログラムを動作させているマイドキュメントのフォルダがネットワーク上にあり、これをローカルに移動したらまさかまさか動いた。
シンクライアントなので権限が足りないのかそこらへんが理由っぽい(そこまでつきとめられず)。
参考にしたサイト:
WebRequest.Create defaultproxy exception - Google 検索
マイクロソフトの仕様なのかバグなのか。
追伸:Xenappとかシンクライアントってほんと嫌い。