2011-03-24 38 views
3

我正在使用Silverlight 4.0,並試圖通過https獲取請求。我得到的是下面的異常,這是不是真的有幫助,因爲沒有搜索引擎找到任何相關的解決方案......ClientHttpWebRequest:ArgumentNullException s

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

+0

您可以嘗試通過選項>高級>查看證書>服務器>導入導入證書,或者添加一個針對主機的異常? – fszlin 2011-03-25 04:55:31

+0

我的確如此。 Silverlight應用程序在https://myurl.com/myapp.xap上運行,我正在Firefox中查看它。但是,當試圖連接到網站(如上所述),我得到這個錯誤。但不在IE中。 – user644342 2011-03-25 07:19:59

回答

1

明白了。

問題是服務器的根CA證書不可信。因爲我安裝了IE 6,所以我沒有看到這個消息。添加到Firefox的異常沒有傳播到Silverlight(因爲Silverlight顯然總是全球Windows證書)。

安裝IE 8顯示根地址證書不受信任地址欄旁邊。單擊該消息,將根CA證書添加到Windows使用的證書中,所有工作,IE,OOB和Firefox。

相關問題