从Classic ASP连接时,SQL Server中的应用程序名称

时间:2011-08-23 16:42:31

标签: sql-server asp-classic connection-string

在我的连接字符串中,我添加了Application Name = XX,因此我可以从SQL服务器中识别进程的来源(sp_who2 - ProgramName列)。从.NET连接时,这很有用。当我使用Server.CreateObject(“ADODB.Connection”)通过Classic ASP连接时,我的ProgramName被SQL Server识别为“Internet信息服务”。

有没有人知道配置内容的方法(连接字符串?IIS?sql?)所以SQL Server会看到我的应用程序名称?

2 个答案:

答案 0 :(得分:6)

只需添加此参数:

Application Name=My app name;

这是一个例子。除非您真的使用SQL 2000或更早版本,否则我不建议使用DSN或旧式{SQL Server}驱动程序。

conn_string = "Provider=SQLNCLI10;Data Source=x.x.x.x;Initial Catalog=dbname;" & _
              "User ID=xxx;Password=xxx;Application Name=my funky chicken;"

您可能没有最新版本的SQL Native Client,因此您可能需要回退到与版本无关的提供程序名称:

conn_string = "Provider=SQLNCLI;Data Source=x.x.x.x;Initial Catalog=dbname;" & _
              "User ID=xxx;Password=xxx;Application Name=my funky chicken;"

如果您没有安装SQL Native Client,可以从这里安装它(x86 | x64),或者回退到OLEDB:

conn_string = "Provider=SQLOLEDB.1;Data Source=x.x.x.x;Initial Catalog=dbname;" & _
              "User ID=xxx;Password=xxx;Application Name=my funky chicken;"

我测试了上面的所有三个连接字符串并验证了Profiler(ApplicationName),sp_who2(ProgramName)和sys.dm_exec_sessions(program_name)显示“我的时髦鸡”。

答案 1 :(得分:1)

在ASP Classic中,参数名称应为" APP"。 例如:

DRIVER={SQL Server};SERVER=0.0.0.0\instancename;UID=xxx;PWD=xxx;DATABASE=xxx;App=xxx;

请参阅SQL Server Native Client团队的开发人员的详细信息:

http://blogs.msdn.com/b/sqlnativeclient/archive/2009/05/07/sql-server-native-client-connection-strings-and-ole-db.aspx