Сбой веб-службы при установке в отдельном проекте с веб-сайта - PullRequest
0 голосов
/ 13 апреля 2010

Я совершенно новичок в веб-службах и не могу заставить мою работать.

Моя установка на VS 2008 с использованием IIS. У меня есть один файл решения с 3 проектами: веб-сайт, код и сервисы.

Если я добавлю свой веб-сервис на свой веб-сайт и назову его локально, он будет работать нормально (это просто веб-служба hello world). Я хочу перевести службу в другое место для использования с нескольких сайтов.

Я не знаю, что я делаю неправильно - я прочитал столько противоречивой информации о диско-файлах, файлах доступа, silverlight, flash, java и т. Д.

Я просто ищу быстрые простые шаги для создания веб-службы, к которой я могу получить доступ из javascript и развернуть на отдельном веб-сайте. Конечная цель состоит в том, чтобы иметь функциональность в веб-сервисах, чтобы веб-сайт звонил через JS и работал намного более плавно во время загрузки и асинхронных вызовов.

  • Нужно ли создавать диско-файл?
  • Нужно ли настраивать безопасность? - Я знаю, что это лучше всего, я просто хочу, чтобы это сработало.
  • Нужно ли разрешать кросс-браузерный доступ на IIS или на моем хост-сервере?
  • Есть ли какие-нибудь справочные сайты, которые вы можете порекомендовать?
  • Должен ли я использовать WCF в качестве новой технологии? - Я видел это в MSDN, но, похоже, больше для приложений Windows, чем для веб-приложений.

Я не получаю никаких конкретных кодов ошибок. Я установил средства отладки firefox (firebug) и вижу, что это за заголовки, но не знаю, как их интерпретировать, и ответ не передается обратно.

Любая помощь приветствуется !!!

Ответы [ 2 ]

1 голос
/ 15 апреля 2010

Когда ваш JS вызывает ваш веб-сервис, они должны быть на одном и том же имени хоста - это ограничение политики вашего браузера с одинаковым происхождением.

Например, если ваш веб-сервис находится на http://ws.domain.com/report.asmx, а ваша страница на http://domain.com/index.aspx, то прямой вызов ajax не будет разрешен.

Вы можете обойти это несколькими способами. Один общий метод называется JSON-P, который включает в себя возврат результата ws в виде функции js, а затем вызов ws в качестве скрипта.

http://en.wikipedia.org/wiki/JSON#JSONP

0 голосов
/ 15 апреля 2010

Вы можете использовать правый клик на VS Project -> Publish, чтобы скопировать все соответствующие файлы в папку. Вы должны создать веб-приложение в IIS и настроить его для своего WebService. Если вы не получаете полезных сообщений об ошибках, попробуйте установить

<configuration>
  <system.web>
    <customErrors mode="Off" />
  </system.web>
</configuration>

Надеюсь, это поможет, но ваше описание ошибки немного расплывчато ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...