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



在我的连接字符串中,我添加应用程序名称=XX,这样我就可以从SQL服务器中识别进程来自何处(sp_who2 - ProgramName列)。这在从。net连接时非常有效。当我使用Server. createobject("ADODB.Connection")通过经典ASP连接时,我的ProgramName被SQL Server识别为"Internet信息服务"。

有没有人知道一种方法来配置的东西(连接字符串?IIS吗?sql?)所以sql Server看到我的应用程序名称?

添加如下参数:

Application Name=My app name;

下面是一个例子。我不建议使用DSN或老式的{SQL Server}驱动程序,除非你真的使用SQL 2000或更早的版本。

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)显示"my funky chicken"。

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

DRIVER={SQL Server};SERVER=0.0.0.0instancename;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

相关内容

  • 没有找到相关文章

最新更新