У меня очень специфическая проблема.В VS2010 Server Explorer я могу подключиться к SQL Server и просто выполнить хранимую процедуру.Однако, когда я пытаюсь сделать это в коде, я получаю исключение:
Информация учетной записи прокси-сервера xp_cmdshell не может быть получена или недействительна.Убедитесь, что учетные данные '## xp_cmdshell_proxy_account ##' существуют и содержат действительную информацию.
Теперь, возможно, я использовал неправильные учетные данные в коде, но затем скопировал строку подключения из проводника сервера и вставилэто в моей строке подключения в моем файле конфигурации.Тем не менее, та же ошибка.
Вот код, который выполняет подключение и вызов хранимой процедуры:
public static DataSet callStoredProcedure(string procedure, params SqlParameter[] args)
{
SqlDataAdapter adapter = new SqlDataAdapter();
DataSet dataSet = new DataSet();
string connString = ConfigurationManager.ConnectionStrings["App"].ConnectionString;
try
{
using (SqlConnection conn = new SqlConnection(connString))
using (SqlCommand command = conn.CreateCommand())
{
conn.Open();
if (args != null)
{
foreach (SqlParameter param in args) command.Parameters.Add(param);
}
command.CommandText = procedure;
command.CommandType = CommandType.StoredProcedure;
adapter.SelectCommand = command;
adapter.Fill(dataSet, "tabela");
}
}
catch (SqlException exception)
{
throw new Exception("SqlClient exception", exception);
}
return dataSet;
}
А вот соответствующий XML-код конфигурации для строки подключения, котораяскопировано из строки подключения, которую использует обозреватель сервера:
<connectionStrings>
<add name="App" connectionString="Data Source=db2.myapp.com,49178\hosting;Initial Catalog=app;User ID=appuser;Password=f00barbaz" providerName="System.Data.SqlClient" />
</connectionStrings>
Опять же, обозреватель сервера может подключиться к серверу и выполнить хранимую процедуру, но мой код постоянно выдает одно и то же исключение.Что может быть причиной этого?
Спасибо
РЕДАКТИРОВАТЬ
Чтобы было ясно: обозреватель сервера может подключаться и выполнять сохраненныепроцедуры с той же строкой подключения, что и мой код.И все же мой код вызывает исключение.