我正在使用 Silverlight 4.0,并试图通过 https 获取请求。我得到的只是下面的异常,这并不是很有帮助,因为没有搜索引擎找到任何相关的解决方案......
request = WebRequest.Create( new Uri("https://myurl.com/myfile" ) );
asyncResult = request.BeginGetResponse();
...
request.EndGetResponse( asyncResult );
{System.ArgumentNullException ---> System.ArgumentNullException: Value cannot be null.
Parameter name: s
at System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClass5.<EndGetResponse>b__4(Object sendState)
at System.Net.Browser.AsyncHelper.<>c__DisplayClass2.<BeginOnUI>b__0(Object sendState)
--- End of inner exception stack trace ---
at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
at System.Net.Browser.ClientHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
当我使用 http 而不是 https 时,它会起作用。当我通过 https 使用浏览器时它有效。但不是这样的。非常感谢任何提示在哪里寻找答案,甚至答案。
[编辑] 好的,我发现了问题所在:显然它与 Firefox 和证书有关。当我在 IE 中运行 xap 时,它要求我信任一个证书,然后它就可以工作了。在 Firefox 中,我从来没有遇到过这样的问题,而且它从来没有用过(即使我通过那个地址下载了 xap。)所以现在的问题是:如何让 https、Firefox 和 Silverlight 协同工作?
[编辑2] 我仍然遇到同样的问题,但还有更多问题。不仅 Firefox 有问题,浏览器外也有问题(即使从 IE 安装)。有人有类似的异常,但没有答案:http://forums.silverlight.net/forums/p/210114/494451.aspx
最佳答案
明白了。
问题是服务器的根 CA 证书不受信任。因为我安装了 IE 6,所以我没有真正看到消息。添加到 Firefox 的异常没有传播到 Silverlight(因为 Silverlight 显然总是全局 Windows 证书)。
安装 IE 8 显示地址栏旁边的根 CA 证书不受信任。单击该消息,将根 CA 证书添加到 Windows 使用的证书,瞧,一切正常,IE、OOB 和 Firefox。
关于c# - 客户端 HttpWebRequest : ArgumentNullException s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5421628/