重写路径不适用于子网站(Sharepoint 2013)

时间:2017-11-13 10:32:22

标签: c# asp.net sharepoint

我创建了一个web服务,以便通过引用 - http://syncspviewoutlook.codeplex.com/将任务与outlook同步。 (此功能基本上将当前用户任务与outlook同步,而不是同步所有任务,只要为任务列表单击连接到Outlook)

我创建了一个httpmodule,以便使用路径customservice.asmx重写路径(lists.asmx)而不是Global.asax文件,该文件适用于父网站(http://example:8081/) 以下是调用我的自定义Web服务的代码。

public void context_BeginRequest(object sender,EventArgs e)         {

            HttpContext ctx = HttpContext.Current;
            if (ctx != null)
            {
                string path = ctx.Request.Url.AbsolutePath;
                string userAgent = ctx.Request.UserAgent;
                if (!string.IsNullOrEmpty(userAgent))
                {
                    if (userAgent.Contains("Microsoft Office Outlook") && path.ToLower().IndexOf("_vti_bin/lists.asmx") >= 0)
                    {
                        ctx.RewritePath("/_layouts/15/folder/customservice.asmx");
                    }
                }
            }

    }

但是当我尝试在子网站中同步任务时,重写路径似乎不起作用,甚至没有抛出任何错误。它不会调用新的customservice.asmx url,即使它命中行 - (ctx.RewritePath(“/ _ layouts / 15 / folder / customservice.asmx”);)

任何想法都是为什么原始的lists.asmx被调用而不是新的子网站(http://example:8081/subsite1/)。我确实启用了跟踪但无法找到任何错误。

1 个答案:

答案 0 :(得分:0)

能否解决上述问题..正如https://social.msdn.microsoft.com/Forums/sharepoint/en-US/cf58fa8d-2806-4732-a556-5996a86d5c10/rewritepath-not-working-in-case-of-subsites?forum=sharepointdevelopment

所述

我不得不将我的调用从BeginRequest更改为PostResolveRequestCache