c# - 如何跟踪 Nuget.Server 上的包下载?

标签 c# asp.net nuget

我们使用私有(private) Nuget 存储库在 Intranet 环境中提供包服务。是否可以跟踪下载了哪些包以创建基本统计信息?例如哪些包被下载最多等。

最佳答案

假设您有一个使用 NuGet.Server 包的 ASP.NET 应用程序。

然后添加一些日志记录就很容易了。您可以装饰 PackageService:

public class MyPackageService : IPackageService
{
    public MyPackageService(PackageService packageService)
    {
        _PackageService = packageService;
    }

    private readonly PackageService _PackageService;

    public void CreatePackage(HttpContextBase context)
    {
        _PackageService.CreatePackage(context);
    }

    public void DeletePackage(HttpContextBase context)
    {
        _PackageService.DeletePackage(context);
    }

    public void DownloadPackage(HttpContextBase context)
    {
        // LOG HERE
        Log(context);
        _PackageService.DownloadPackage(context);
    }

    public void PublishPackage(HttpContextBase context)
    {
        _PackageService.PublishPackage(context);
    }
}

然后更改 Routes.cs 以重新绑定(bind)到 MyPackageService

public static class NuGetRoutes {

    public static void Start() {
        NinjectBootstrapper.Kernel.Rebind<IPackageService>().To<MyPackageService>();
        MapRoutes(RouteTable.Routes);
    }

    //...
}

关于c# - 如何跟踪 Nuget.Server 上的包下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18383348/

相关文章:

c# - X文档文件名

sql - SQL Server 2016中order by子句中的单例多列

c# - 在 javascript 函数中添加 <%%> 将在页面加载时强制执行?

Nuget 错误 : Please provide credentials for: https://www. myget.org/F

c# - 代码隐藏中的翻转 View 动画

c# - 为什么这个 (null || !TryParse) 条件结果为 "use of unassigned local variable"?

asp.net - 如何在 ASP.NET MVC 中使用 Html.Action() 将参数传递给 Action?

c# - NuGet:在项目中将包依赖项显式列出为包引用,以便可以卸载它们

.net - 如何指定NuGet软件包的安装目录?

c# - 如何将 Sum() 等 linq 函数与动态变量一起使用