2012-12-29 60 views
2

我正在使用URL重写规则重写URL来访问Sharepoint服务器。除了我在/_vti_bin/listdata.svc上获得404以外,一切正常。我也在应用程序日志中的代理服务器上发生错误。通过URL访问listdata.svc重写重定向到SharePoint 2010

登录名称:应用程序

来源:System.ServiceModel 4.0.0.0

日期:2013年1月3日下午12时49分二十秒

事件ID:3

任务类别:WebHost

级别:错误

关键词:经典

用户:IIS APPPOOL \ HrSelfService

计算机:webnet01test.bluebunny.com

说明:

虚拟主机提供商无法处理请求。发件人信息: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(字符串normalizedVirtualPath) 在System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(字符串relativeVirtualPath) 在System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest() 在System.ServiceModel.Activation。 HostedHttpRequestAsyncResult.BeginRequest() 在System.Runtime.AsyncResult.End [TAsyncResult](IAsyncResult的结果) 在System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult的结果)

我从SharePoint填充菜单标题列表...

因此,页面将是domain2.com/pages/default.aspx和下面的代码将执行并填充页面上的菜单。

感谢您提供任何帮助。


$阿贾克斯({ 网址: “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> 

回答

3

我在这个问题上与微软合作,并想出如果您通过URL Rewrite proxy请求来自SharePoint的listdata.svc服务,请求将死于代理服务器。代理服务器会尝试处理该请求,并显然返回一个404.

我们不得不在IIS中删除处理程序映射,以便服务请求将通过代理流向SharePoint服务器。

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

我们测试了SharePoint,一切正常,我们现在可以通过URL重写访问_vti_bin/listdata.svc。

+0

我只是想补充说我们有这个问题,并且与重定向关联的“网站”被禁用。并非常感谢您成为一名优秀的公民并为此添加解决方案。你可能救了我几天的努力。 –

+0

这个答案解决了我一直在努力的一个问题,试图重写一个内部开发的WCF服务。只要我在代理Web应用程序中删除.SVC的处理程序映射,它一切正常。有趣的是需要注意的是删除处理器映射会在web.config中添加一些元素,说明已经删除了哪些处理器映射 – PeteL