Как добавить ServiceReference во встроенный файл? - PullRequest
1 голос
/ 03 апреля 2010

У меня есть библиотека классов. В одном из классов я добавляю ссылку на скрипт на страницу следующим образом:

    protected override void OnPreRender(EventArgs e)
    {
        base.OnPreRender(e);
        if (this.Page != null)
        {
            ScriptManager sm = ScriptManager.GetCurrent(this.Page);
            ServiceReference reference = new ServiceReference("~/Admin/Services/ContactsService.asmx");
            reference.InlineScript = true;
            sm.Services.Add(reference);
        }
    }

Для пути к файлу ServiceReference, есть ли способ добавить встроенный файл? Я хочу сохранить все содержимое автономной библиотеки, а не помещать файл в папку веб-сайта.

1 Ответ

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

Если я правильно понимаю, что вы спрашиваете, это сделать невозможно, потому что WebService - это фактический скомпилированный класс, а WebMethod - это фактический скомпилированный метод.

Метод GetWebResourceUrl делает то, что подразумевает имя, возвращает resource . Клиентский скрипт (Javascript) - это просто строковый ресурс, его не нужно выполнять на сервере, он просто отправляется клиенту в виде текста. Веб-сервисы (и их методы) должны иметь физическую конечную точку, способную отвечать на запросы клиентов и выполнять этот код.

Теоретически, если вы использовали WCF, вы могли бы определить URL-адрес конечной точки службы во время выполнения, потому что WCF отделяет конечную точку от поведения и определяет ее в определенном месте в вашем файле web.config. Это не позволит вам предоставить весь «сервис» в виде WebResource, но позволит избежать необходимости жесткого кодирования URL. Если вы используете ASMX WebServices, то у вас даже нет этой опции, потому что ASMX использует файл разметки, похожий на страницу ASP.NET.

Если вы беспокоитесь о том, что URL-адрес может измениться, т. Е. Потому что вы развертываете этот веб-сайт на нескольких серверах / доменах, то лучше всего было бы настроить внешний URL-адрес в качестве параметра приложения. Таким образом, вам нужно всего лишь отредактировать файл web.config, чтобы изменить URL-адрес, используемый для ссылки на скрипт.

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