












昨天下午有几个在公司实习的学生问,在使用Windows Workflow Foundation Hands-On Lab的Lab03里面的CreateDatabaseObjects.cmd创建数据库时为什么出错,当时正准备开会,没来得及帮他们解决,晚上回家下载Windows Workflow Foundation Hands-On Lab看了一下,原来是SQL SERVER的实例名称所致,CreateDatabaseObjects.cmd文件里面默认用户使用SQL Server Express ,在 SQL Server Express 中,默认情况下始终使用命名实例。在安装 SQL Server Express 时指定实例名,否则的话,将使用默认命名实例 SQLExpress,如果使用默认命名实例,则可以将该实例引用为 computername\SQLExpress。
而使用SQL Server 2005 的非Express版本时,如果在安装时使用默认命名实例(非命名实例),则在访问时是使用安装了SQL Server的机器名称即可。
而那几个实习生的机器上恰巧实用的是企业版的SQL SERVER,因此用“%COMPUTERNAME%\SQLExpress”肯定是错误的了,修改成“%COMPUTERNAME%”就肯定可以了。如果使用的是Express版本的话,就没有这个问题啦。
相应的,application configuration file.txt文件里面的<CommonParameters>节也需要做成相同的修改,下面是修改后的:
<CommonParameters>
<add name="ConnectionString" value="Initial Catalog=TrackingStore;
Data Source=localhost;
Integrated Security=SSPI;" />
</CommonParameters>
@echo off
echo Creating Tracking database
Osql -S %COMPUTERNAME% -E -n -i "Create_TrackingStore.Sql" 
echo Creating Tracking tables
Osql -S %COMPUTERNAME% -E -n -d TrackingStore -i "C:\WINDOWS\Microsoft.NET\Framework\v3.0\Windows Workflow 
Foundation\SQL\EN\Tracking_Schema.sql" 
echo creating Tracking stored procedures
Osql -S %COMPUTERNAME% -E -n -d TrackingStore -i "C:\WINDOWS\Microsoft.NET\Framework\v3.0\Windows Workflow 
Foundation\SQL\EN\Tracking_Logic.sql" 
echo Creating persistence tables
Osql -S %COMPUTERNAME% -E -n -d TrackingStore -i "C:\WINDOWS\Microsoft.NET\Framework\v3.0\Windows Workflow 
Foundation\SQL\EN\SqlPersistenceService_Schema.sql" 
echo creating persistence stored procedures
Osql -S %COMPUTERNAME% -E -n -d TrackingStore -i "C:\WINDOWS\Microsoft.NET\Framework\v3.0\Windows Workflow 
Foundation\SQL\EN\SqlPersistenceService_Logic.sql" 
Pause
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。