我创建了一个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/)。我确实启用了跟踪但无法找到任何错误。
答案 0 :(得分:0)
我不得不将我的调用从BeginRequest更改为PostResolveRequestCache