Как подключиться к веб-сервису в том же решении из javascript - PullRequest
0 голосов
/ 03 августа 2009

У меня есть решение с несколькими проектами, один веб-сайт другой другой веб-сервер. (Они будут находиться на разных хостах.) Мне нужно подключиться к веб-сервису из некоторого JavaScript на веб-сайте. Однако, хотя это кажется очевидной, легкой вещью, я не могу понять это правильно. Мой веб-сервис работает нормально, я могу подключиться к нему из приложения Windows Form в отдельном проекте в том же решении. В моем файле aspx есть следующее:

<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Services>
        <asp:ServiceReference Path="~/../WebService/WebService.asmx" />
    </Services>
</asp:ScriptManager>
<script type="text/javascript">
    function calback(result)
    {
        alert("hello");
    }
    WebService.FunctionToCall("hello", callback);
</script>

Однако в справочнике службы сказано, что он не может получить доступ .. с ~

Может ли кто-нибудь указать мне правильное направление?

Ответы [ 2 ]

0 голосов
/ 04 августа 2009

Тот факт, что эти два проекта находятся в одном решении, не имеет значения. Вы размещаете их на двух разных серверах. Будет иметь значение только URL.

Поскольку URL-адрес будет различаться для вашей машины разработки и рабочей (и, без сомнения, для тестовой) машины, вам придется справиться с этим, как и с любым другим URL-адресом, который изменяется в зависимости от среды - вам необходимо использовать Конфигурационный файл.


Я не полностью проверил это, но похоже, что оно работает:

<asp:ScriptManager ID="ScriptManager1" runat="server" ScriptMode="Debug" >
    <Services>
        <asp:ServiceReference Path="<%$ AppSettings:webServiceUrl %>"  />
    </Services>
</asp:ScriptManager>

в web.config:

  <appSettings>
    <add key="webServiceUrl" value="http://localhost:38759/Enumerations.asmx"/>
  </appSettings>

Это фактически сгенерировало ссылку на скрипт на вышеуказанный веб-сервис.

0 голосов
/ 03 августа 2009

Попробуйте использовать полный путь вместо ~ /../

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