Доступ к listdata.svc через перенаправление перезаписи URL на SharePoint 2010

Я попадаю на прокси-сервер с правилами перезаписи URL-адресов, переписывающих URL-адреса для доступа к серверу Sharepoint. Все работает, кроме 404 на /_vti_bin/listdata.svc. Я также получаю ошибку на прокси-сервере в журнале приложения.

Имя журнала: Приложение

Источник: System.ServiceModel 4.0.0.0

Дата: 03.01.2013 12:49:20

ID события: 3

Категория задачи: WebHost

Уровень: Ошибка

Ключевые слова: классический

Пользователь: IIS APPPOOL \ HrSelfService

Компьютер: webnet01test.bluebunny.com

Описание:

WebHost не удалось обработать запрос. Информация об отправителе: System.ServiceModel.Activation.HostedHttpRequestAsyncResult / 9460241 Исключение: System.Web.HttpException (0x80004005): служба '/_vti_bin/listdata.svc' не существует. ---> System.ServiceModel.EndpointNotFoundException: служба '/_vti_bin/listdata.svc' не существует. в System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable (String normalizedVirtualPath) в System.ServiceModel. ServiceHostingEnvironment.EnsureServiceAvailableFast (String relativeVirtualPath) в System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest () в System.ServiceModel.Activation.HostedHttpRequest.AsyncRequesttime. .Activation.HostedHttpRequestAsyncResult.End (результат IAsyncResult)

Я заполняю заголовки меню из списка sharepoint ...

Таким образом, страница будет domain2.com/pages/default.aspx, и приведенный ниже код выполнится и заполнит меню на странице.

Спасибо за любую помощь, которую вы можете оказать.


$.ajax({ url: "http://Domain1.com/_vti_bin/listdata.svc/MegaMenuCategories?$orderby=OrderingValue%20asc",

        dataType: 'json',
        crossDomain:true, 
        async: false,
        success: function (data) {
        var menuLength = data.d.results.length;
        for (i=0; i<data.d.results.length; i++){
            var results1 = data.d.results[i].MenuTitle;
            var order = data.d.results[i].OrderingValue;

            if (order == "1")
                addMenuTitle(order, results1);   

            if (order == "2")
                addMenuTitle(order, results1);

            if (order == "3")
                addMenuTitle(order, results1);

            if (order == "4")
                addMenuTitle(order, results1);

            if (order == "5")
                addMenuTitle(order, results1);

            if (order == "6")
                addMenuTitle(order, results1);
        }
        if (menuLength == "5"){
            $("#megaRtCorner").css("left","490px");
            $("#megaMenu").css("width","475px");
        }
       }
    });</code>

person calorie712    schedule 29.12.2012    source источник


Ответы (1)


Я работал с Microsoft над этой проблемой и выяснил, если вы запросите службу listdata.svc из SharePoint через прокси-сервер для перезаписи URL, запрос на прокси-сервере умрет. Происходит то, что прокси-сервер пытается обработать запрос и, очевидно, возвращает 404.

Что нам нужно было сделать, так это удалить отображение обработчика в IIS, чтобы сервисный запрос проходил через прокси-сервер на сервер SharePoint.

Мы удалили svc-Integrated-4.0 на определенном веб-сайте IIS.

Мы протестировали SharePoint, все работает отлично, и теперь у нас есть доступ к _vti_bin / listdata.svc через URL Rewrite.

person calorie712    schedule 20.02.2013
comment
Я просто хотел добавить, что у нас была эта проблема, и сайт, связанный с перенаправлением, был отключен. И большое вам спасибо за то, что вы были хорошим гражданином и добавили свое решение к этому. Вы, наверное, сэкономили мне дни усилий. - person Robert Kaucher; 15.06.2013
comment
Этот ответ решил проблему, над которой я работал несколько дней, пытаясь переписать ее на собственную службу WCF. Как только я удалил сопоставления обработчиков для .SVC в своем прокси-веб-приложении, все заработало нормально. Интересно отметить, что при удалении сопоставлений обработчиков в web.config добавляются некоторые элементы, указывающие, какие сопоставления обработчиков были удалены. - person PeteL; 31.03.2017