2016-04-01 28 views
0

おはようございます! 私は問題を抱えていましたが、私はこの「種類」のSQL例外を持つ唯一の人ではないことを理解しています。しかし、私は見つけたすべてを同じ結果でやった。だから、私の問題を紹介しましょう。IIS asp.net WebページのSQL Serverエラー

私はasp.net Webアプリケーションで作業しています。 Visual Studio 2015(コミュニティ版)で開発されました。私のプロジェクトでは、私のローカルデータベース(私のプロジェクトと同じコンピュータ内)にいくつかのSQL接続があります。 「デバッグ」(お気に入りのブラウザで)をクリックすると、すべてうまくいっています。私はquerys(select、inset、updateなど)を作ることができます。今私はそれを私のイントラネットで公開したいと考えています(私の恋人はこのアプリでもうまくやってみたいです)。だから、私はC

に私のプロジェクトフォルダを移動:\のinetpub \ wwwrootの

そして、はい、IISのWebサイトには、(設定されている正しく、別のイントラネットアプリケーションが正常に動作し、私が思うに、よく私はしています! )

私のWebページのDefaultページはLogin.aspxであり、正しいキー(ユーザー名とパスワード)でアクセスしようとするとSQLにエラーが表示されます。

ログイン試行が無効です。データベース issue.System.Data.SqlClient.SqlException(0x80131904):「IIS APPPOOL \ SADI」というエラーメッセージが表示されました。 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity アイデンティティ、SqlConnectionString connectionOptions、SqlCredential 資格途中、 userConnectionOptions、SessionDataにreconnectSessionData、 DbConnectionPoolプール、文字列accessTokenをSqlConnectionString、 newSecurePassword、ブールredirectedUserInstanceをSecureString、providerInfo、文字列NEWPASSWORDオブジェクト System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptionsエン、ブール applyTransientFaultHandling) オプション、DbConnectionPoolKey poolKey、poolGroupProviderInfo、 DbConnectionPoolプール、たDbConnection owningConnection、 DbConnectionOptionsオブジェクトUserOは System.Data.ProviderBase.DbConnectionPool.CreateObject(たDbConnection owningObject、DbConnectionOptionsのuserOptions、EN System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool プールたDbConnection owningObject、DbConnectionOptionsオプション、 DbConnectionPoolKey poolKey、DbConnectionOptions userOptions)EN ptions) System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(たDbConnection owningObject、DbConnectionOptions userOptions、DbConnectionInternal oldConnection)EN DbConnectionInternal oldConnection) System.Data.ProviderBase.DbConnectionPool.TryGetConnection(たDbConnection owningObject、UInt32型waitForMultipleObje EN ctsTimeout、ブール allowCreate、ブールonlyOneCheckConnection、DbConnectionOptions userOptions、DbConnectionInternal &接続) System.Data.ProviderBase.DbConnectionPool.TryGetConnection(たDbConnection owningObject、TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) en System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource 1回のリトライ、DbConnectionOptions userOptions、DbConnectionInternal oldConnection、DbConnectionInternal & 接続)EN ja System.Data.ProviderBase.DbConnectionInternal。TryOpenConnectionInternal(たDbConnection outerConnection、DbConnectionFactoryはconnectionFactory、 TaskCompletionSource リトライ) SADMINエンSystem.Data.SqlClient.SqlConnection.Openエン System.Data.SqlClient.SqlConnection.TryOpen EN(TaskCompletionSource`1 リトライ)()。 Login.btnLog_Click(オブジェクト送信者、EventArgs e)en C:\ Users \ MyUser \ Documents \ Visual Studio 2015 \ Projects \ MyProject \ MyProject \ Login.aspx.cs:行43 ClientConnectionId:6cc4ef30-4720-4c45-ba87 -d85f39804685エラー 番号:18456、状態:1、クラス:14 Enviar

そして...これは私のライン43でyour'reは思った場合:

conn.Open(); 

とキャッチセクションでLogin.aspxの

try 
       { 

        SqlConnection conn = new SqlConnection(@"Integrated Security=SSPI;Persist Security 
Info=False;User ID=sa;Initial Catalog=MyDatabase;Data 
Source=PCUsername\SQLInstance"); 
        SqlCommand cmd = new SqlCommand(); 
        SqlDataReader reader; 

        cmd.CommandText = "spcLoginValidate"; 
        cmd.CommandType = CommandType.StoredProcedure; 
        cmd.Parameters.Add("@username", SqlDbType.VarChar).Value = txtusername.Text; 
        cmd.Parameters.Add("@passw", SqlDbType.VarChar).Value = txtpassword.Text; 

        cmd.Connection = conn; 
        conn.Open(); 

        reader = cmd.ExecuteReader(); 
        while (reader.Read()) 
        { 
         idRole = Convert.ToInt32(reader[0].ToString()); 
         Session["User"] = reader[1].ToString(); 
         Session["ID"] = idRole; 

        } 



        reader.Close(); 
        conn.Close(); 

        lblError.Visible = true; 
       } 
       catch (Exception ex) 
       { 
        lblError.Text = "Invalid login attempt. Database issue." + ex; 
        lblError.Visible = true; 

       } 

で、この私のBackCode私はwhith labelErrorを持っていますSQL Exceptionであり、そのラベルには、私のWebページに私があなたに与えたエラーが表示されます。

SQL Serverサービスが実行されているため、何をすべきか分かりません。 あなたからの助けがあればそれは素晴らしいでしょう! 私は3日間この問題を解決しようとしてきましたが、まだそれを持っています。

答えて

0

まあ、:

作成SQL ServerログインとDBユーザ。 それでも理由は分かりません。

私は必要なものを見つけました。結局のところ、これは私の問題を解決しました。 は、私はちょうど(私のデータベース内)SQL Serverのクエリでモホ面とスティーブBへ

exec sp_grantlogin 'IIS APPPOOL\DefaultAppPool' 
use yourDB exec 
sp_grantdbaccess 'IIS APPPOOL\DefaultAppPool' 

感謝をこの文を実行し、あなたの答えが見つかりました。解像度の基本でした。

1

エラーは自己説明的です。アプリケーションプールアカウントにSQLデータベースに対する十分な権限がありません。

あなたは可能性があります

  1. ドメインアカウントへの変更、アプリケーションの識別情報を、ユーザー/パスワードにDB
  2. 変更SQL認証で、このアカウントに権限を付与し、SQLログインを作成します(ありません)しかし、推奨

ユーザー偽装がweb.configファイルで無効になっている場合も(ない場合は、このような問題につながる可能性)を確認してください

+0

私は2番にしましたが、それでも同じ問題です。そして、 –

+0

[@Moho述べました](http://stackoverflow.com/a/36361258/588868)、コネクション文字列はまだ統合セキュリティを使用するように設定されています。ユーザーIDとパスワードは使用されません。 –

3

IIS AppPool \ SADIアカウントにデータベースまたはへのアクセスを許可し、統合セキュリティを無効にし、saユーザーアカウントのパスワードを追加する必要があります。この問題に関する情報を探して4日後の https://technet.microsoft.com/en-us/library/aa337545(v=sql.110).aspx

+0

どうすればいいですか? –

+1

はテクニック記事 – Moho

+0

へのリンクを追加しました。 SQL Serverのログインとdbユーザーはそれをやった...しかし、私はaccoountアクセス(IIS AppPool \ SADI)をどのように許可しますか?あなたはなにか考えはありますか? –

関連する問題