Personal ArcSDE不支持IIS6的使用

    现在由于微软提供了SQL Server 2005 Express的免费版本的数据库,所以ESRI也在这个数据库的基础上开发了Personal ArcSDE来提供免费的SDE功能。
    当然这样确实对提高SDE的使用有好处,只是SQL Server 2005 Express和Personal ArcSDE都具有限制,而且Personal ArcSDE还有编辑和使用的人数限制。
    现在由于项目的要求,在Window Server 2003下使用Personal ArcSDE,而部分需要进行对SDE数据库进行编辑的功能则是采用Arc Engine来连接SDE数据库,当然所有的版本是用9.2的。但是连接的还是采用常用的方式DBMS的验证方式,这个也是ESRI建议使用的方式,如下:

            IPropertySet pPropertySet = new PropertySetClass();
            pPropertySet.SetProperty("SERVER", SrvName);
            pPropertySet.SetProperty("INSTANCE", string.Format("sde:sqlserver:{0}\\sqlexpress", SrvName));
            pPropertySet.SetProperty("DATABASE", DBName);
            pPropertySet.SetProperty("USER", UserName);
            pPropertySet.SetProperty("PASSWORD", Password);
            pPropertySet.SetProperty("VERSION", Version);
            pPropertySet.SetProperty("AUTHENTICATION_MODE", authenticateMode);

            IWorkspaceFactory pWorkspaceFactory = new SdeWorkspaceFactoryClass();
            IWorkspace pWorkspace = null;
            EventLog log = new EventLog("Application");
            log.Source = "Application";
            try
            {
                log.WriteEntry("Start to open SDE");
                pWorkspace = pWorkspaceFactory.Open(pPropertySet, 0);
                log.WriteEntry("Success");
            }
            catch (Exception ex)
            {
                log.WriteEntry("Exception:" + ex.Message);
                throw ex;
            }
    如果将这个代码运行在2003的IIS6下,这个就会无法连接,同时连接一次后,其他页面就不会再有反应了,因为这个时候负责处理的进程W3wp.exe已经被杀死,并重启,所有连接的各类信息已经全部丢失,所以Web的服务器没有了响应。
    如果在Visual Studio.Net 2005下使用调试时将启用VS自带的Web服务器的模拟进程,而这个进程却可以绕过了W3wp的安全检测,或者将IIS6配置成隔离模式下运行,而不是应用程序模式,因为应用程序模式的安全性高很多,而且性能也高些。这个需要在IIS网站的属性的服务面板上进行设置。
    在XP的系统中,由于采用的进程是Aspnet_wp.exe.进程来处理.net的Web应用程序,这个就不会发生以上的问题。

posted on 2007-10-28 21:50  雨帘  阅读(314)  评论(0编辑  收藏  举报

导航