Сервер разработки ASP.NET не принимает точку в pathinfo - PullRequest
0 голосов
/ 06 декабря 2010

Я пробую Facebook c # SDK (v4.0.2) и испытываю ошибку 404, когда Facebook пытается перенаправить обратно в обработчик перенаправления для SDK.Полученный URL-адрес:

http://localhost:9152/facebookredirect.axd/elserdemo/Default.aspx?session={%22session_key%22%3A%222.GJsQK_BkApJNH8TncuFHpQ__.3600.1291665600-678938033%22%2C%22uid%22%3A%22678938033%22%2C%22expires%22%3A1291665600%2C%22secret%22%3A%22dnmnVip8JJ31rHUs2byKeQ__%22%2C%22base_domain%22%3A%22localhost%22%2C%22access_token%22%3A%22133477943366316|2.GJsQK_BkApJNH8TncuFHpQ__.3600.1291665600-678938033|xtjv95K4Lj_wg2-X3comNL4haG0%22%2C%22sig%22%3A%2241b1c3884488a9c9fa82b398c7fa80dc%22}

У меня в приложении facebook установлен режим iframe для холста и необходимые настройки миграции.Я также убедился, что URL-адрес холста указывает на мой локальный сервер разработки.Однако, когда браузер пытается загрузить указанный выше URL, я получаю 404 из ASP.NET.

Если pathinfo не содержит точку, она работает и перенаправляет в мое приложение, поэтому кажется, что этоточка в "default.aspx", которая все испортила, но я не знаю почему.Какие-нибудь мысли?Обходные пути?

РЕДАКТИРОВАТЬ:

Хотя это проблема со мной с Facebook SDK, это не относится к этому.По-видимому, это проблема сервера разработки ASP.NET.Например, если я пытаюсь загрузить:

http://localhost:9152/facebookredirect.axd/elserdemo/default.aspx

, я получаю 404. Однако, если я пытаюсь загрузить:

http://localhost:9152/facebookredirect.axd/elserdemo/default

Это работает, но затем я в конечном итоге на экране facebook с 404 в iframe (потому что по умолчанию не является допустимым в моем приложении).

РЕДАКТИРОВАТЬ # 2:

Это не проблема с недопустимыми символами в URL.Если бы это было так, я бы получил код ошибки 400 (неправильный запрос).Вместо этого я получаю 404, который сообщает мне, что сервер разработки пытается загрузить файл, который не существует, вместо того, чтобы остановиться на .axd и выдать остальное как Request.PathInfo, как и должно быть.Я не уверен, ПОЧЕМУ он делает это, так что это действительно то, что я ищу здесь.

Ответы [ 4 ]

0 голосов
/ 15 декабря 2010

Я получил эту же ошибку - оказалось, что она связана с mimetype, отображаемым "расширением" URL.В вашем случае сервер разработки ASP.NET ищет mimetype ".12916656 ....", а точнее последний период до конца URL.

Если вы переключаетесь на IIS на локальном компьютереmachine, вы можете установить mimetype по умолчанию для application / octet-stream, используя подстановочный знак (подробности по ссылке ниже).Однако на сервере разработки ASP.Net сделать это невозможно:

http://support.microsoft.com/kb/326965

Ошибка 404 и исключение «Файл не найден» - это то, как сервер обрабатывает неопределенные миметипы... довольно запутанно.

0 голосов
/ 07 декабря 2010

Вы должны добавить обработчик перенаправления в ваш web.config, чтобы перенаправление работало, просто добавьте эти строки в ваш web.config

  <system.webServer>
  <handlers>
      <add name="facebookredirect.axd" verb="*" path="facebookredirect.axd"
           type="Facebook.Web.FacebookAppRedirectHttpHandler, Facebook.Web" />
  </handlers>

0 голосов
/ 07 декабря 2010

Нажатие сброса на предыдущих ответах.

Что именно говорит браузеру перейти по этому URL: http://localhost:9152/facebookredirect.axd/elserdemo/default.aspx

Я спрашиваю, потому что Facebook должен быть настроен так, чтобы просто перейти наhttp://localhost:9152/ и вы указали в вопросе, что это происходит, когда Facebook перенаправляет обратно на ваш сайт.Имя обработчика не должно быть в URL-адресе, что наводит меня на мысль, что вы неправильно настроили приложение в самом Facebook.

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

0 голосов
/ 06 декабря 2010

Ваше приложение не перенаправляет на правильный адрес. Вы получаете сериализованную версию объекта FacebookSession вместо строки запроса с подписанным запросом.

Убедитесь, что вы устанавливаете правильные значения на странице конфигурации приложения facebook.

...