2012-01-21 4 views
0

Я разрабатываю приложение ASP.NET MVC 3, и я использую SWFUpload для обеспечения загрузки файла на основе ajax. Производственная среда - Windows Azure. Все это прекрасно работает в моем локальном ящике, работающем под IISExpress и эмулятором Windows Azure. Но когда я его опубликовал в Azure, я получаю ArgumentException, в котором говорится, что словарь параметров содержит нулевую запись.Параметры SWFUpload не отправляются

Вот фрагмент post_params, просмотрев источник.

post_params: { 
    surveyResponseId: '1918f3c3-0764-4a6a-a308-5d2180ca2eb1', 
    personId: 'f5fce116-f059-48bc-be79-ad859259ffd8', 
    surveyId: 'd1fa576d-d348-43e3-82ce-952f74fb0d72' 
} 

При просмотре операции с Fiddler2 я получаю статус Код 504. Другие исследования указывает на 504 Скрипач говорят, что это возникают проблемы. Но я могу проверить запрос и включать все опубликованные параметры.


POST http://... 
Accept: text/* 
Content-Type: multipart/form-data; boundary=----------GI3cH2ei4Ef1Ij5Ij5cH2Ef1GI3GI3 
User-Agent: Shockwave Flash 
Content-Length: 109580 
Connection: Keep-Alive 
Pragma: no-cache 

------------GI3cH2ei4Ef1Ij5Ij5cH2Ef1GI3GI3 
Content-Disposition: form-data; name="Filename" 

myimage.jpg 
------------GI3cH2ei4Ef1Ij5Ij5cH2Ef1GI3GI3 
Content-Disposition: form-data; name="surveyResponseId" 

1918f3c3-0764-4a6a-a308-5d2180ca2eb1 
------------GI3cH2ei4Ef1Ij5Ij5cH2Ef1GI3GI3 
Content-Disposition: form-data; name="surveyId" 

d1fa576d-d348-43e3-82ce-952f74fb0d72 
------------GI3cH2ei4Ef1Ij5Ij5cH2Ef1GI3GI3 
Content-Disposition: form-data; name="personId" 

f5fce116-f059-48bc-be79-ad859259ffd8 
------------GI3cH2ei4Ef1Ij5Ij5cH2Ef1GI3GI3 
Content-Disposition: form-data; name="Filedata"; filename="myimage.jpg" 
Content-Type: application/octet-stream 

Любые идеи? Спасибо,

Update 2012-Jan-01

Файл загружен успешно, если удалить параметры и подпись метода действия.

ответ

0

Все еще не уверен, в чем проблема на самом деле, но я нашел обходное решение. Проблема заключается в привязке модели. Если I удалите параметры из метода Action, а затем используйте объект Request для извлечения свойств File и Form, которые он работает.

  var workItemId = Request.Form["surveyResponseId"]; 
      var arrivalId = Request.Form["surveyId"]; 
      var personId = Request.Form["personId"]; 
      var file = Request.Files[0]; 

Таким образом, все необходимые значения, размещаются правильно, это просто, что модель связывания не может связать их правильно с параметрами. Все еще не уверен, почему он работает в тестировании, но не в производстве.

0

Иногда, если размер файла слишком велик, IIS может предотвратить загрузку файлов. Вы можете изменить максимальный размер файла, разрешенный в web.config, как показано в этой ссылке. http://www.websupergoo.com/helpupload50/source/2-tech_notes/3-web.config.htm. Это может быть или не быть вашей проблемой, но это стоит того.

+0

Спасибо за ответ. Файлы, с которыми я работаю, составляют около 100K, поэтому я надеюсь, что настройки по умолчанию Azure не такие маленькие. Но я проверю это. – Rick

+0

Сделал внесенные изменения в web.config. Все еще ошибки из-за недостающих размещенных параметров. Я думаю, что я изменю код, чтобы не требовать дополнительных параметров, и посмотреть, могу ли я получить файл сам по себе. – Rick

Смежные вопросы