我正在使用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一起工作?
[EDIT2] 我仍然遇到同样的问题,但还有更多的东西。不仅Firefox有问题,而且还有浏览器外(即使从IE安装)。有人有类似的例外,但没有答案:http://forums.silverlight.net/forums/p/210114/494451.aspx
答案 0 :(得分:1)
知道了。
问题是服务器的根CA证书不受信任。因为我安装了IE 6,所以我没有真正看到这条消息。添加到Firefox的例外没有传播到Silverlight(因为Silverlight显然总是全局Windows证书)。
安装IE 8显示根CA证书在地址栏旁边是不可信的。单击该消息,将根CA证书添加到Windows和voilà使用的那些,一切正常,IE,OOB和Firefox。