每日小结(2)

摘要

  • 在 win10 中开启 IIS 服务器并支持 .asp 文件的解析
  • 在 IIS 7 上使用 asp 连接 SQLite 数据库

在 win10 中开启 IIS 服务器并支持 .asp 文件的解析

系统:win10 amd64 1803

开启 IIS 服务

打开控制面板 => 程序与功能 => 启用或关闭 Windows 功能,找到 Internet Information Services 项:

然后在浏览器中输入 localhost 就可以看到默认界面了。

使 IIS 支持 .asp 文件的解析

展开上图中的 “应用程序开发功能” 项,选中 ASP 和 ISAPI 扩展这两项:

将 C:\inetpub\wwwroot\index.htm 文件重命名为 index.asp,即改为 asp 文件,即可使用 asp 的语法。

在 IIS 中添加默认文档 index.asp

或者在网站根目录添加一个 web.config 文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <defaultDocument>
            <files>
                <add value="index.asp" />
                <add value="index.aspx" />
            </files>
        </defaultDocument>
    </system.webServer>
</configuration>

参考

  1. https://docs.microsoft.com/en-us/iis/application-frameworks/running-classic-asp-applications-on-iis-7-and-iis-8/classic-asp-not-installed-by-default-on-iis

在 IIS 7 上使用 asp 连接 SQLite 数据库

这部分内容主要是解决这个问题:[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

其实这个问题出现的原因还是因为驱动没装好。

  1. 打开 “ODBC 数据源管理器”,在开始中搜索:

或者使用 win + R 创建任务: %windir%\system32\odbcad32.exe :

  1. 添加系统 DSN:

点击 添加,选择合适的 SQLite 驱动,这里我用的是 Devart ODBC Driver for SQLite,点击 完成

Data Source Name 这一栏可以任意填,但是 在 asp 程序中填写 connection string 时要与这里的对应

Database 这一栏定位到 SQLite 数据库中,点击 OK,数据源就设置好了。

  1. 接下来要修改 connection string:
' following connection string is not valid without proper driver
'connString = "DRIVER=SQLite3 ODBC Driver;Database=" & dbpath & ";LongNames=0;Timeout=1000;NoTXN=0;SyncPragma=NORMAL;StepAPI=0;"
' using Driver: Devart ODBC Driver for SQLite, following connection string works well on IIS 7, but it the database file is fixed
' here the driver property is not effected because we don't have a driver whose name is SQLite3 ODBC, 
' but Data Source property point out a valid database, so invalid driver property is coverd
connString = "Driver=SQLite3 ODBC Driver;Data Source=" & "testdb" &"; Version=3;Legacy Format=True;" 

on error resume next
conn.Open connString

注意上面的 connString 中的 Data Source 项要和上面设置 DSN 中 Data Source Name的对应。

  1. 测试服务器,可以正常读取数据库

安装合适的驱动

上述办法由于指定了 Data Source Name,因此,如果要更换 asp 程序所使用的数据库时会比较麻烦。
其实有个简单的方法,直接将驱动装到服务器上,就可以正常运行了。

SQLite ODBC 驱动的下载链接:

装完之后再进入 ODBC 数据源 —— 系统 DSN 中进行查看数据源和相应的配置:

总结

可以发现这里多了个 SQLite3 DataSource 的数据源,其驱动程序为 SQLite3 ODBC Driver,并且其中配置的 DataBase Name 是留空的,其实你也应该注意到了,
我们之前使用 ADO 连接数据库时使用的连接字符串是 connString = "DRIVER=SQLite3 ODBC Driver;Database=" & dbpath & ";LongNames=0;Timeout=1000;NoTXN=0;SyncPragma=NORMAL;StepAPI=0;"
这里的 Driver 和安装好驱动后,系统 DSN 中的数据源驱动程序是同名的,这就说明如果数据库没有配置好,那么 asp 服务器就会报错。

其实也可以看到,如果直接在 ODBC 数据源 程序中指定了数据源(并指定了确定的 SQLite 数据库文件),那么直接在连接字符串中写上 Data Source 属性也是可以连接到特定的数据库文件的。

posted @ 2018-09-16 16:14  brifuture  阅读(355)  评论(0编辑  收藏  举报