我有三个项目:My.Business,My.WebSite和My.WebService
我需要我的日志记录类能够识别何时从网站和Web服务发出请求。我曾经把Web服务作为一个单独的应用程序在网站下面运行,所以我只使用不同的配置文件,这很好。但我希望现在的Web服务可以在同一个应用程序下运行。
如果我能确定请求是来自My.WebSite还是My.WebService,我会被设置,但我不知道该怎么做。
由于Web服务请求以“.asmx”结尾,因此以下概念有效,但感觉不对。
return HttpContext.Current.Request.Path.IndexOf(".asmx") >= 0 ? "My.WebService" : "My.WebSite";
谢谢!
答案 0 :(得分:1)
您应该能够使用Assembly.GetCallingAssembly():
return Assembly.GetCallingAssembly().FullName;
这将返回调用当前执行方法的程序集,因此您可以捕获以这种方式调用My.Business程序集的任何人。
话虽如此,我倾向于同意Meirion Hughes的上述评论。您可能希望考虑传递日志记录类所需的任何信息,特别是如果它可能在将来用于更多应用程序。
答案 1 :(得分:0)
this.GetType().Assembly.FullName
将为您提供当前类的程序集名称。