通过URL访问listdata.svc重写重定向到SharePoint 2010

时间:2012-12-29 05:54:49

标签: jquery json sharepoint-2010 url-rewriting svc

我正在使用URL重写规则来修改代理服务器,重写URL以访问Sharepoint服务器。除了我在/_vti_bin/listdata.svc上获得404之外,一切正常。我还在应用程序日志中的代理服务器上收到错误。

日志名称:应用程序

  

来源:System.ServiceModel 4.0.0.0

     

日期:2013年1月3日下午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.HostedHttpRequestAsyncResult.BeginRequest()      在System.Runtime.AsyncResult.End [TAsyncResult](IAsyncResult结果)      在System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result)

我正在填充共享点列表中的菜单标题...

因此页面将 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>

1 个答案:

答案 0 :(得分:3)

我在这个问题上与微软合作,并想知道如果您通过URL重写代理从SharePoint请求listdata.svc服务,请求将在代理处死亡。会发生什么是代理服务器尝试处理请求并显然返回404。

我们要做的是删除IIS中的处理程序映射,以便服务请求通过代理流到SharePoint服务器。

我们在特定的IIS网站上删除了svc-Integrated-4.0。

我们测试了SharePoint,一切都运行良好,我们现在可以通过URL重写访问_vti_bin / listdata.svc。