0

我有以下堆栈:

  • .NET 4.5.1
  • IIS 7.5
  • MSSQL 服务器 2008 快递 SP 4
  • 视觉工作室 2013 更新 5
  • 视窗 2007 SP1
  • 传感网 6.5.2.8421

我尝试使用 IIS 中的部署选项安装 SENSENET 导入包,但是在创建数据库时会显示:

  Microsoft.Web.Deployment.DeploymentDetailedClientServerException: Error durante la ejecución del script de la base de datos. El error ocurrió entre las siguientes líneas del script: "1061" y "1201". El registro detallado podría tener más información acerca del error. El comando comenzaba con lo siguiente:
"IF NOT EXISTS (SELECT * FROM sys.views WHERE objec"
 Sintaxis incorrecta cerca de '!'. http://go.microsoft.com/fwlink/?LinkId=178587  Obtenga más información en: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_SQL_EXECUTION_FAILURE. ---> System.Data.SqlClient.SqlException: Sintaxis incorrecta cerca de '!'.
   en System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   en System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   en System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   en System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   en System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
   en System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
   en System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   en Microsoft.Web.Deployment.DBStatementInfo.Execute(DbConnection connection, DbTransaction transaction, DeploymentBaseContext baseContext, Int32 timeout)
   --- Fin del seguimiento de la pila de la excepción interna ---
   en Microsoft.Web.Deployment.DBStatementInfo.Execute(DbConnection connection, DbTransaction transaction, DeploymentBaseContext baseContext, Int32 timeout)
   en Microsoft.Web.Deployment.DBConnectionWrapper.ExecuteSql(DBStatementInfo sqlStatement, DeploymentBaseContext baseContext, Int32 timeout)
   en Microsoft.Web.Deployment.SqlScriptToDBProvider.AddHelper(DeploymentObject source, Boolean whatIf)
   en Microsoft.Web.Deployment.SqlScriptToDBProvider.Add(DeploymentObject source, Boolean whatIf)
   en Microsoft.Web.Deployment.DeploymentObject.AddChild(DeploymentObject source, Int32 position, DeploymentSyncContext syncContext)
   en Microsoft.Web.Deployment.DeploymentSyncContext.HandleAddChild(DeploymentObject destParent, DeploymentObject sourceObject, Int32 position)
   en Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
   en Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildren(DeploymentObject dest, DeploymentObject source)
   en Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
   en Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildren(DeploymentObject dest, DeploymentObject source)
   en Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject)
   en Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable`1 syncPassId, String syncSessionId)
   en Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentProviderOptions providerOptions, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)
   en Microsoft.Web.Deployment.DeploymentObject.SyncTo(String provider, String path, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)
   en Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentWellKnownProvider provider, String path, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)
   en Microsoft.Web.Deployment.UI.InstallProgressWizardPage.OnWorkerDoWork(Object sender, DoWorkEventArgs e)
   en System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
   en System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

显然,安装失败。

4

1 回答 1

1

原因很可能是您的 SQL Server 版本中不可用的 SQL 方法 (IIF)。您可以尝试在较新的服务器上安装 SenseNet 或下载较新的 SensNet 包,因为在下一个版本 ( 6.5.3+ ) 中,上述脚本已转换为与较旧的 SQL 服务器兼容。

于 2016-09-30T19:56:07.923 回答