2017-02-21 272 views
1

私は2日間、このエラーで戦ってきたと私は私は私のサービスが実行されていることを確認しているソリューション、名前付きパイプとTCPを見つけることができません/ IPが有効になります。私はWindowsとSQL Serverの認証を使用してSQL Serverにログインすることができます。私はテーブルから選択するためのコマンドテキストを送信するときにこれが起こっている、接続状態が開かれているが、私はやるとき:名前付きパイププロバイダ:SQL Serverへの接続を開くことができませんでした2016 [53]

var dbCommand = CreateDbCommand(connection, commandText, null, parameters); 
return dbCommand.ExecuteReader(); 

private static IDbCommand CreateDbCommand(IDbConnection connection, string commandText, CommandType? commandType, IEnumerable<Parameter> parameters) 
{ 
    var command = connection.CreateCommand(); 
    command.CommandText = commandText; 
    command.CommandType = commandType ?? CommandType.Text; 

    foreach (var parameter in parameters) 
    { 
     var sqlParameter = command.CreateParameter(); 
     sqlParameter.ParameterName = parameter.Key; 
     sqlParameter.Value = parameter.Value ?? DBNull.Value; 
     command.Parameters.Add(sqlParameter); 
    } 

    return command; 
} 

私は

return dbCommand.ExecuteReader(); 

上のエラーを取得していますし、私は私を使い果たしてしまいました忍耐を助けてください。

私はSQL Server 2016を使用しています。私のWebサイトはローカルIISで動作しています。

おかげ

がPS:これは、SQL Server 2012で動作するように使用されますが、アップグレードしたため、失敗しています。

よろしく

+0

チェック1433の場合は、ファイアウォールで開かれています。私はあなたが異なるマシン上でIISとSQL Serverを実行していると仮定します。 – qxg

+0

これは同じマシン上にあり、私のラップトップは正確には –

+0

です。私は現実のものと同じIIS構成でローカルWebサイトを実行します。 –

答えて

1

IIS:あなたはIISの下で実行されている場合は

、その後、あなたのウェブアプリや仮想ディレクトリはアプリケーションプールで実行されている、およびアプリケーションプールが関連付けられIIdenityを有しています。ですから、〜you(mycompany \ jackm)がdbにアクセスできるからといって、AppPoolを実行できるアカウントができるわけではありません。誰がAppPoolを実行しているのかを把握し、そのユーザーにdbへのログインと権限を与えます。

OR(クイックテスト)、あなた(mycompanyののの\ jackm)こと、およびそれをしようとするアプリケーションプールのIDを変更します。

ローカルユーザーアカウントを使用している場合は、そのユーザーにログインしてデータベースにアクセスできるようにしてください。

Use Master 
GO 

CREATE LOGIN [myMachineName\myLocalUser] FROM WINDOWS; 
GO 

use MyDatabase 

EXEC sp_addrolemember 'db_datareader', 'myMachineName\myLocalUser' 

GO 
+0

ローカルWindowsドメインアカウントを使用して接続しています。それは許可関係ではありません。私は以前にリンクサーバーで問題が発生していたので、このエラーが発生したことを修正しました。 –

+0

IIS/Apppoolアカウントが有効になっていることを忘れてしまいました。 NTLMまたはKerberos認証の場合 –

+0

「ローカルWindowsドメインアカウント」...単一のマシンに固有のローカルユーザーについて話していますか?あなたはADのどこかに座っているドメインアカウントを意味しますか? – granadaCoder

関連する問題