Asp.net 本地SQL Anywhere数据库的会话隔离问题

Asp.net 本地SQL Anywhere数据库的会话隔离问题,asp.net,iis-7,sqlanywhere,Asp.net,Iis 7,Sqlanywhere,我正在将一组现有的应用程序从Win XP迁移到Win 7。我们有一个第三方应用程序,由用户启动并在用户会话中运行,该应用程序通过ODBC访问本地SQL Anywhere 9数据库(使用dbeng9按需启动)。在同一台机器上,我们有一个ASP.NET网站,该网站还通过ODBC访问本地SQL Anywhere数据库。这两个应用程序在Win XP中配合得很好,因为两个进程都在会话0中运行 在Win 7中,ASP.NET站点遇到ODBC错误,表示指定的数据库文件已在使用中。这是因为第三方应用程序首先启动

我正在将一组现有的应用程序从Win XP迁移到Win 7。我们有一个第三方应用程序,由用户启动并在用户会话中运行,该应用程序通过ODBC访问本地SQL Anywhere 9数据库(使用dbeng9按需启动)。在同一台机器上,我们有一个ASP.NET网站,该网站还通过ODBC访问本地SQL Anywhere数据库。这两个应用程序在Win XP中配合得很好,因为两个进程都在会话0中运行

在Win 7中,ASP.NET站点遇到ODBC错误,表示指定的数据库文件已在使用中。这是因为第三方应用程序首先启动,并在用户会话(通常是会话1)中启动dbeng9实例(通过ODBC)。然后,ASP.NET启动并尝试连接到同一个数据库。ODBC驱动程序发现dbeng9的实例未在当前会话(会话0)中运行,并尝试启动实例,此时它无法访问数据库文件,因为登录用户已在会话1中使用该数据库文件

有人对解决本地SQLAnywhere数据库的会话隔离问题有什么建议吗

我考虑将dbeng9作为服务运行,而不是允许ODBC按需启动实例。但是,因为SQLAnywhere与第三方产品捆绑在一起,所以PC没有dbsrv,我不确定这将如何影响许可

只能从本地PC访问ASP.NET站点。在第三方web服务器中运行ASP.NET站点会导致它在用户会话中执行吗?(注意:因为这在1000台机器上运行,所以必须提供免费或极低成本的选项。)

  • 是ASP.NET开发服务器 它与VisualStudio捆绑在一起 以这种方式重新发行
  • 是否可以将IIS 7或IIS 7 Express配置为在“仅本地”模式下运行 它在中执行的模式 用户会话

只要您运行的是SQL Anywhere 9.0.2.3420或更高版本,作为服务运行的数据库服务器应该可以通过共享内存从运行在该计算机上的任何会话中的客户端看到

如果您能够使用dbsvc实用程序或Sybase Central创建服务,这将是您的最佳选择。您必须与第三方供应商联系,看看您的许可证是否允许这样做。

显然,运行“w3wp.exe/debug”将强制ASP.NET工作进程在登录用户的会话中运行,但我还不知道如何让IIS以这种方式启动工作进程。