2

我需要遵循 asp.net 代码的经典 asp 代码。

asp.net-System.Environment.MachineName

asp.net-Server.MapPath

4

1 回答 1

2

ASP Server.MapPath 不像 ASP.NET 版本那样支持 URL 开头的“~/”解析。这是我去年在这里发布的代码:

Function UrlContent(sUrl) 
    If InStr(1, sUrl, "~/") = 1 Then 
        UrlContent = ApplicationPath & Mid(sUrl, 2) 
    Else 
        UrlContent = sUrl 
    End If 
End Function 

Function ApplicationPath() 

    Dim pos: pos = Len(Request.ServerVariables("INSTANCE_META_PATH")) + 6 

    ApplicationPath = Mid(Request.ServerVariables("APPL_MD_PATH"), pos) 

End Function

接受传入的UriContentURL 并解析“~/”以返回相对于主机网站的 url。因此,与 ASP.NET 代码等效的 MapPath 是:

Dim physicalPath : physicalPath = Server.MapPath(UrlContent(virtualPath))

获取机器名称要困难得多,因为您需要访问 Windows API。名为“SERVER_NAME”的服务器变量只是请求中使用的主机名,因此它与实际的 Windows 机器名不同。

创建一个允许脚本访问环境的 .NET COM Interop dll 相当容易。

于 2012-08-02T14:00:31.537 回答