我使用 Microsoft 官方示例和此示例作为我的代码的基础,以将文件从 Silverlight 上传到 PHP 脚本。
我正在调用**HttpWebRequest.BeginGetRequestStream()**
,将文件写入文件流,然后调用**HttpWebRequest.BeginGetResponse()**
以获取响应。当我调用HttpWebResponse.EndGetResponse()时,每次都会收到以下异常:
{System.Security.SecurityException ---> System.Security.SecurityException: Security error.
at System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
at System.Net.Browser.BrowserHttpWebRequest.<>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.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at FileUpload.FileUploadProcess.GetReponseCallback(IAsyncResult AsyncResult)}
我在允许访问的基本目录中有 clientaccesspolicy.xml 和 crossdomain.xml 文件。我运行了 Fiddler 并看到它下载了 clientaccesspolicy.xml 文件,因此它可以正确命中它。
PHP 文件在 Apache2 上运行,只是在 php://input 上执行 fread 以读取数据,如示例所示。它没有收到任何数据,这让我相信 SecurityException 正在强制它中止写入。
有没有人以前见过这个问题并且可以指出我正确的解决方案方向?