2013-10-01 3 views
0

У меня есть WebApp с участком загрузки.
Чтобы загрузить файлы в базу данных sql, я использую элемент управления файловой системой Ajax Toolkit.Ajax FileUpload Route/Querystring - DirectoryNotFoundException

Я всегда получаю аналогичную ошибку, как в this post, но после нескольких часов тестирования я выяснил, что вызывает мою проблему.

Мой контроль загрузки находится на странице SidDetails.aspx и если открыть страницу непосредственно с
foo.com/Pages/SID/SidDetails.aspx
Я могу загрузить файлы.

Page Route

но если доступ к странице по маршруту
foo.com/SID/My/1
Я получаю ОШИБКА 500 Internal Server

Так что я проверил ссылка на страницу, вызывающую исключение
foo.com/SID/My/1/?contextKey={DA8BEDC8-B952-4d5d-8CC2-59FE922E2923} & DONE = 1 & справ = BD327457-2013-1E97-6ADE-28612D63758E

Для меня, похоже, что это проблема, но я не знаю, как это исправить.
я уже пытался добавить маршрут со значением запроса
Route with Query
Но я не знаю, если это то, как вы бы подойти к нему.


Не удалось найти часть пути "C: \ Windows \ TEMP_AjaxFileUpload \ E0E386A6-F5B5-1012-F6E5-1872E4D6EF69.
Это исключение, которое бросает элемент управления загрузкой.

Я хотел бы сохранить маршруты, но как я могу исправить проблему?

Я использую Visual Studio 2012, .NET 4.5 и AjaxControlToolkit 7,0930

Сердечные приветы
CarnVanBeck

ответ

1

Я бегу в это тоже, и после того, как сходят с ума, я установил ее.

  1. Скачайте ajaxtoolkit source code project и откройте его.

  2. Изменить следующие строки:

    this._uploadUrl = 'AjaxFileUploadHandler.axd'; 
    

    к:

    this._uploadUrl = '/AjaxFileUploadHandler.axd'; 
    
  3. Перестроить проект, получить новый .dll и скопировать его в свой /bin каталог.

Это исправит проблему, предоставив правильный путь обработчику.

PS: Я пришел к этому, как:

  • я заметил некоторые странные дублированные звонки в обработчике происходит только в маршрутизации путях (как www.site.com/projects/edit/mypage), где не удалась загрузка.

  • Я заметил, что на тестовой странице, помещенной в домашний каталог моего сайта, загрузчик работал нормально.

Затем я пришел на страницу this и заметил указанную строку.

+0

Ответ размещен выше работает для меня. И я отправил эту проблему на сайт codeplex: https://ajaxcontroltoolkit.codeplex.com/workitem/27754 –

0

Если ваше приложение работает в режиме интеграции с бассейном, вы должны добавить эти строки в файле web.config:

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <handlers> 
     <add name="AjaxFileUploadHandler" verb="*" path="AjaxFileUploadHandler.axd" 
       type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit" /> 
    </handlers> 
    <validation validateIntegratedModeConfiguration="false"/> 
    </system.webServer> 
Смежные вопросы