【问题标题】:How to automate code behind using SQL job?如何使用 SQL 作业自动执行代码?
【发布时间】:2013-01-29 04:31:15
【问题描述】:

我有这个 VB 代码可以从我的网络服务器中删除垃圾文件。该代码似乎运行良好,我想通过使用 sql 作业自动化此代码以每天运行它。怎么可能?

代码如下:

Public Sub GetFilesAndFolders()
    Dim dirInfo As DirectoryInfo = New DirectoryInfo(Server.MapPath("~/test"))
    Dim fileInfo() As FileInfo = dirInfo.GetFiles("*.*", SearchOption.AllDirectories)
    Dim fileExist As ArrayList = New ArrayList()
    Dim pathExist As ArrayList = New ArrayList()
    Dim fileToDelete As ArrayList = New ArrayList()
    pathExist = returnPathExist()
    For Each d As FileInfo In fileInfo
        If String.Format("{0:dd/MM/yyyy}", d.CreationTime) = Date.Today Then
            fileExist.Add("~\test\" & d.Name)
        End If
    Next

    For Each listElement As String In fileExist
        If Not pathExist.Contains(listElement) Then
            fileToDelete.Add(listElement)
        End If
    Next

    For Each item As String In fileToDelete
        Dim imageFile As FileInfo = New FileInfo(HttpContext.Current.Server.MapPath(item))
        If imageFile.Exists Then
            File.Delete(HttpContext.Current.Server.MapPath(item))
        End If
    Next

End Sub

Function returnPathExist() As ArrayList
    Dim pathExist As ArrayList = New ArrayList()
    'declare connection to the database and stored procedure
    Try
        cnn.Open()
        rdr = cmd.ExecuteReader
        While rdr.Read()
            pathExist.Add(rdr("test"))

        End While
        rdr.Close()
    Finally
        cnn.Close()
        cnn.Dispose()
    End Try
    Return pathExist
End Function

我想使用 CLR,但不确定应该添加哪个 CLR。模块、类、存储过程或???而且CLR不支持httpcontext和system.Configuration.ConfigurationManager,我需要在上面的returnPathExist函数中访问我的存储过程。

感谢您的建议。

更新:

离实现这个功能只有一步之遥。以下是引发错误的行:

Dim dirInfo As DirectoryInfo = New DirectoryInfo(Server.MapPath("~/test"))

Dim imageFile As FileInfo = New FileInfo(HttpContext.Current.Server.MapPath(item))

File.Delete(HttpContext.Current.Server.MapPath(item))

似乎 HttpContext.Current 不能在 CLR 中使用。这是真的吗?有什么办法可以解决这个问题吗?

谢谢。

【问题讨论】:

    标签: sql vb.net clr


    【解决方案1】:

    您确实应该对路径进行配置设置。 HttpContext.Current 仅对 ASP.NET 请求/响应上下文有效。

    【讨论】:

    • 谢谢丹尼尔。我怀疑是这样,但我在哪里可以配置路径的设置?
    • 我明白了。所以我存储的所有路径都必须是直接路径,对吗?例如,如果我有一个名为 test.txt 的文件,则路径必须是 C://inetpub/..../test.txt。感谢您的耐心等待。
    猜你喜欢
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-10
    相关资源
    最近更新 更多