Параметры SWFUpload не публикуются - PullRequest
0 голосов
/ 21 января 2012

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

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


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

Есть идеи?Спасибо,

Обновление 2012-Янв-01

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

Ответы [ 2 ]

0 голосов
/ 26 января 2012

Все еще не уверен, в чем проблема, но я нашел обходной путь.Проблема где-то в привязке модели.Если я удаляю параметры из метода 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 голосов
/ 23 января 2012

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

...