title: PlatformNotSupportedException when saving a file from Silverlight through a Generic Handler
body: <p>I have a Silverlight application hosted in an ASP.NET site, through which I'm starting an HttpWebRequest to a Generic Handler in order to save a CSV file to the user's machine. </p>
  
  <p>From the Silverlight app, a Uri is constructed with parameters to make the CSV file server-side. A button is clicked which triggers the following: </p>
  
  <pre><code>string httpHandlerName = "HttpDownloadHandler.ashx";
  // CustomUri handles making it an absolute Uri wherever we move the handler.
  string uploadUrl = new CustomUri(httpHandlerName).ToString();
  
  UriBuilder httpHandlerUrlBuilder = new UriBuilder(uploadUrl);
  httpHandlerUrlBuilder.Query = string.Format("{3}startdate={0}&amp;enddate={1}&amp;partnerId={2}", startDate, endDate, partnerId, string.IsNullOrEmpty(httpHandlerUrlBuilder.Query) ? "" : httpHandlerUrlBuilder.Query.Remove(0, 1) + "&amp;");
  
  HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(httpHandlerUrlBuilder.Uri);
  webRequest.Method = "POST";
  webRequest.BeginGetResponse(new AsyncCallback(GetResponseCallback), webRequest);
  </code></pre>
  
  <p>Now here is the ProcessRequest code from the HttpDownloadHandler.ashx</p>
  
  <pre><code>public void ProcessRequest(HttpContext context)
  {
      _httpContext = context;
  
      string partnerId = _httpContext.Request.QueryString["partnerId"];
      string startDate = _httpContext.Request.QueryString["startDate"];
      string endDate = _httpContext.Request.QueryString["endDate"];
  
      ExportCsvReport exportCsv = new ExportCsvReport();
      _csvReport = exportCsv.ExportMemberRegistrationReport(partnerId, startDate, endDate);
  
      context.Response.Clear();
      context.Response.AddHeader("content-disposition", "attachment; filename=Report.csv");
      context.Response.ContentType = "text/csv";
      context.Response.Write(_csvReport);
  }
  </code></pre>
  
  <p>Here is the HttpResponse header information that comes back when the Save File Dialogue refuses to appear:</p>
  
  <pre><code>{System.Web.HttpResponse}
  Buffer: true
  BufferOutput: true
  Cache: {System.Web.HttpCachePolicy}
  CacheControl: "private"
  Charset: "utf-8"
  ContentEncoding: {System.Text.UTF8Encoding}
  ContentType: "text/csv"
  Cookies: {System.Web.HttpCookieCollection}
  Expires: 0
  ExpiresAbsolute: {1/1/0001 12:00:00 AM}
  Filter: {System.Web.HttpResponseStreamFilterSink}
  HeaderEncoding: {System.Text.UTF8Encoding}
  Headers: 'context.Response.Headers' threw an exception of type 'System.PlatformNotSupportedException'
  IsClientConnected: true
  IsRequestBeingRedirected: false
  Output: {System.Web.HttpWriter}
  OutputStream: {System.Web.HttpResponseStream}
  RedirectLocation: null
  Status: "200 OK"
  StatusCode: 200
  StatusDescription: "OK"
  SubStatusCode: 'context.Response.SubStatusCode' threw an exception of type 'System.PlatformNotSupportedException'
  SuppressContent: false
  TrySkipIisCustomErrors: false
  </code></pre>
  
  <p>When I navigate to localhost/HttpDownloadHandler.ashx while the site is up, without initiating it from within the Silverlight app - the Save File Dialogue appears just fine, it seems to be a case where Silverlight is not accepting the response header properly. </p>
  
  <p>Is there anything that can be done to address this? I'm open to suggestions for changing the way I'm doing this of course. </p>