在我的连接字符串中,我添加了Application Name = XX,因此我可以从SQL服务器中识别进程的来源(sp_who2 - ProgramName列)。从.NET连接时,这很有用。当我使用Server.CreateObject(“ADODB.Connection”)通过Classic ASP连接时,我的ProgramName被SQL Server识别为“Internet信息服务”。
有没有人知道配置内容的方法(连接字符串?IIS?sql?)所以SQL Server会看到我的应用程序名称?
答案 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团队的开发人员的详细信息: