如何区分真实的http上下文或请求与假的



我们有一个在 Web 环境和 Windows 服务中调用的程序集。在一种方法中,它需要调查请求。但是当它在 Windows 服务中运行时,我们需要跳过该代码。我用了常用的方法

if (HttpContext.Current == null)
    return;

但是会发生什么,上下文不是空的,因为第三方程序集中的某个地方创建了假服务器。因此HttpContext.Current包含ServerRequest等。在快速监视中,可以看到这是不同类型的上下文。我可以通过这样做来解决问题

if (HttpContext.Current == null || 
    HttpContext.Current.Request.Url.Host.IndexOf("www.izenda.com",StringComparison.CurrentCultureIgnoreCase) > -1)
    return;

但是,如果下一个版本的 Izenda 在 URL 中有其他内容怎么办?如果公司更改名称和 URL 会有所不同怎么办?

是否有其他属性可以将真实的 Web 服务器请求或上下文与此假对象分开?

只需在WindowsService配置文件的应用程序设置中放置一个键即可。

<add key="isService" value="true"/>

并输入校验代码以区分黑白网络或服务。

最新更新