Ошибка ConnectAsUserName не была установлена, но я даже не использую это свойство

Я использую Microsoft.SqlServer.Smo.dll версии 9.0.1399.0 в процессе сборки [NAnt]. Я работаю на Windows Server 2008 R2. Я подключаюсь к ОБА Sql Server 2008 R2 (10.5), а также к Sql Server 2008 (10.0).

Я настраиваю шаг развертывания одного из наших типов проектов, и теперь все мои сборки, которые развертывают задание Sql (на сервер 2008R2 10.5, выдают сообщение об ошибке «ConnectAsUserName не было установлено».

Если я укажу учетные данные, я получаю сообщение об ошибке «Эта версия Sql Server (10.5) не поддерживается».

Но если я указываю проверку подлинности Windows, я получаю следующую ошибку: «ConnectAsUserName не был установлен».

Я не знаю, где еще искать, вот код, который я использую:

using System;
using System.Collections.Generic;
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo.Agent;

...

public void Schedule(string sqlServer, string userName, string password)
{
    ServerConnection conn = new ServerConnection(sqlServer, userName, password);
    conn.LoginSecure = false;

    Server server = new Server(conn);
    Schedule(server);
}

public void Schedule(string sqlServer)
{
    ServerConnection conn = new ServerConnection(sqlServer);
    conn.ConnectAsUser = false;
    conn.LoginSecure = true;

    Server server = new Server(conn);
    Schedule(server);
}

public void Schedule(Server server)
{
    server.JobServer.Refresh();
    JobType.Refresh();

    foreach (JobType job in Items)
        job.Schedule(server);
}

Кроме того, вот трассировка стека ошибки:

Внутренняя ошибка: свойство Microsoft.SqlServer.Management.Common.PropertyNotSetException ConnectAsUserName не задано.

в Microsoft.SqlServer.Management.Common.ConnectionSettings.ThrowIfPropertyNotSet(String propertyName, String str, Boolean checkEmpty) в Microsoft.SqlServer.Management.Common.ConnectionManager.GetWindowsIdentityForConnection() в Microsoft.SqlServer.Management.Common.ConnectionManager.Connect()
в Microsoft.SqlServer.Management.Common.ConnectionManager.PoolConnect() в Microsoft.SqlServer.Management.Common.ConnectionManager.get_ServerVersion() в Microsoft.SqlServer.Management.Smo.ExecutionManager.GetServerVersion() в Microsoft.SqlServer. Management.Smo.SqlSmoObject.IsExpressSku()
в Microsoft.SqlServer.Management.Smo.SqlSmoObject.CheckVersionNotExpress(String uft) в Microsoft.SqlServer.Management.Smo.Server.get_JobServer()
в SqlSchedule.Jobs. Расписание (серверный сервер) в SqlSchedule.Jobs.Schedule (String sqlServer) в NAnt.MVST.Tasks.ImportJobsTask.ExecuteTask (String xmlJobs) в NAnt.MVST.Tasks.ImportJobsTask.ExecuteTask() в NAnt.Core.Task.Execute() в NAnt.Core.TaskContainer.ExecuteChildTasks() в NAnt.Core.TaskContainer.ExecuteTask() в NAnt.Core.Task.Execute()
в NAnt.Contrib.Tasks. TryCatchTask.ExecuteTask() в NAnt.Core.Task.Execute() в NAnt.Core.TaskContainer.ExecuteChildTasks() в NAnt.Core.Tasks.IfTask.ExecuteTask() в NAnt.Core.Task.Execute()
в NAnt.Core.TaskContainer.ExecuteChildTasks() в NAnt.Core.Tasks.IfTask.ExecuteTask() в NAnt.Core.Task.Execute()
в NAnt.Core.TaskContainer.ExecuteChildTasks() в NAnt.Core. Tasks.IfTask.ExecuteTask() в NAnt.Core.Task.Execute()
в NAnt.Core.Target.Execute() в NAnt.Core.Project.Execute(String targetName, Boolean forceDependencies) в NAnt.Core. Tasks.CallTask.ExecuteTask() в NAnt.Core.Task.Execute() в NAnt.Core.TaskContainer.ExecuteChildTasks() в NAnt.Core.Tasks.IfTask.ExecuteTask() в NAnt.Core.Task.Execute()< br> в NAnt.Core.Target.Execute() в N Ant.Core.Project.Execute(String targetName, Boolean forceDependencies) в NAnt.Core.Tasks.CallTask.ExecuteTask() в NAnt.Core.Task.Execute() в NAnt.Core.Target.Execute() в NAnt.Core .Project.Execute(String targetName, Boolean forceDependencies) в NAnt.Core.Project.Execute() в NAnt.Core.Project.Run()

Кроме того, в документации MSDN указано что это свойство будет игнорироваться при использовании проверки подлинности Windows...

Я нашел этот пост в stackoverflow, и я сделал все, что было в единственном ответе (хотя он и не принят). У кого-нибудь есть еще идеи?


person ganders    schedule 04.09.2012    source источник


Ответы (1)


Сначала я прошел и все настроил так же, как ответ в этот пост. Но после дальнейшего расследования я обнаружил, что одна из моих сборок исходила из папки 90 вместо 100. Изменение этого решило мою проблему.

person ganders    schedule 05.09.2012