36

データベーススクリプトを作成しようとしている.NETアプリケーションに取り組んでいます。プロジェクトのビルド中に、「SSPIコンテキストを作成できません。」というエラーが発生します。このエラーは出力ウィンドウ(VS2008画面内)に表示​​され、ビルドプロセスは失敗しました。これを手伝ってください。SQL Serverは、Windows認証で動作し、ネットワークサービスとして実行されるように構成されています(これら2つのことは私のプロジェクトに必要です)。

これを手伝ってください。このエラーは一貫していないようです。これは、マシンを再起動し、ドメイン時間とネットのいくつかの提案に一致するようにシステム時間を変更することによって、過去に修正されました。これを手伝ってください。

4

20 に答える 20

24

PCが認証ドメインコントローラーにしばらく接続していないようです。(私はこれを私のラップトップで数回発生させていました。)

パスワードの有効期限が切れた場合にも発生する可能性があります。

于 2009-11-28T13:48:24.197 に答える
16

これは、さまざまな原因による非常に一般的なエラーです。ここからKB811889から始めてください。

  • SQL Serverのバージョンは何ですか?
  • そして、クライアントとサーバー上のWindows?
  • ローカルまたはネットワークSQLインスタンス?
  • ドメインまたはワークグループ?プロバイダー?
  • パスワードの変更
  • ローカルウィンドウはエラーをログに記録しますか?
  • 影響を受ける他のアプリはありますか?
于 2009-11-28T13:48:58.860 に答える
7

このエラーは通常、Windowsユーザーアカウントの有効期限が切れており、彼がすでに古いパスワードでログインしている場合に発生します。ユーザーにマシンを再起動して、パスワードの有効期限が切れているかどうか、またはパスワードを変更したかどうかを確認するように依頼するだけです。お役に立てれば!!!!!

于 2016-09-13T10:17:27.233 に答える
6

MSSQLSERVER-Serviceを実行しているユーザーを変更した後も同じ問題が発生しました

SQL Serverで誤ったSPNを解決するために、このツールを使用しました

http://www.microsoft.com/en-us/download/details.aspx?id=39046-SQLServer用のMicrosoft®Kerberos構成マネージャー

私の場合、それはかなりうまくいきました。

于 2014-12-24T22:24:26.607 に答える
5

最初にすべきことは、ログ(Management\SQL Server Logs)に移動して、SQLServerかどうかを確認することですsuccessfully registered the Service Principal Name (SPN)。ある種のエラー(The SQL Server Network Interface library could not register the Service Principal Name (SPN) for the SQL Server service)が表示された場合は、どこから始めればよいかわかります。

これは、SQLServerが実行されているアカウントを変更したときに発生しました。ローカルシステムアカウントにリセットすると、問題は解決しました。Microsoftには、SPNを手動で構成するためのガイドもあります。

于 2014-03-19T12:23:13.350 に答える
5

IISでホストしている場合は、AppPoolアカウントのパスワードが変更されていないことを確認してください

ある場合は、次の手順に従います。

  • IISに移動します
  • アプリケーションプールをクリックします
  • アプリケーションのAppPoolを選択します
  • AppPoolを右クリックします
  • 高度な設定
  • 身元
  • パスワードの更新
  • AppPoolを再起動します
于 2015-10-16T19:09:29.997 に答える
3

Cannot Generate SSPI ContextSQLServer構成マネージャーを使用してエラーを解決しました。マシンにSQLServerネイティブクライアント10.0があるため、サーバーへの接続で名前付きパイプ(または共有メモリ?)を使用しようとしています。他のマシンでも問題なくアプリを実行できます。構成マネージャーを見ると、名前付きパイプと共有メモリの両方が有効になっています(良好)。ただし、エイリアスでは、コンピューターの名前はTCPを強制して存在していました。これを変更するとどのような影響があるかわからなかったため、プログラムの接続文字列を変更して、代わりに<servername>。<domainname>を使用しました。修理済み。

于 2012-12-07T21:29:39.263 に答える
2

「CannotGenerateSSPIContext」エラーは非常に一般的であり、さまざまな理由で発生する可能性があります。根本的なKerberos/NTLMエラーの単なるカバーエラーです。GbnのKB記事のリンクは非常に良い出発点であり、通常は問題を解決します。それでも問題が解決しない場合は、Kerberosエラーのトラブルシューティングのトラブルシューティング手順に従うことをお勧めします。

于 2009-11-28T17:34:40.340 に答える
2

私もこの問題を発行し、サーバー管理者はhttp://www.sqlservercentral.com/Forums/Topic546566-146-1.aspxで提案されているindu_tejaと同じ解決策に従って問題を解決しました。

indu_tejaによって提案されたソリューションは次のように述べています。

この「SSPIコンテキストエラー」が発生した場合。私たちが直面している問題は次のとおりです。

  1. SQLServerにリモートで接続することはできません。
  2. ただし、ローカルアカウントでサーバーに接続することはできます。

原因:この問題は、ActiveDirectory内のSPN間で適切な同期が行われていないことが原因である可能性があります。

解像度:

  1. SPNをリセットする必要があります。Synytax「SETSPN」を使用してください。ネットで構文を一度確認できます。
  2. SQLサーバーサービスアカウントをドメインアカウントからローカルアカウントに変更し、SQLをリサイクルしてから、ドメインアカウントで再度リセットし、SQLサーバーをリサイクルします。
于 2013-09-19T19:05:01.557 に答える
1

私はちょうど同じ問題を抱えていました、そして私がしたすべては別のユーザーIDを使用してSQLサーバーのユーザーログインクレデンシャルを削除し、それらを再び追加することでした。

于 2013-10-14T11:19:32.557 に答える
1

これが私の場合です。SQLServerをホストするリモートマシンがありました。ローカルマシンから、C#コードを介してSQLインスタンスにアクセスしようとしましたが、このエラーが発生していました。自分のマシン/ドメインのユーザーアカウントのパスワードの有効期限が切れていました。私はそれを次のように修正しました:

  1. リモートマシンを開いたところ、パスワードの変更を求められました
  2. このプロンプト内でパスワードを変更し、リモートマシンにログインしました
  3. サインオンページに戻ることができるように、ローカルマシンを「ロック」しました(windows+Lキーを使用して、完全にサインオフする必要はありませんでした)。
  4. 新しいパスワードでローカルマシンにサインバックしました

その後、すべてが正常に機能しました。

于 2016-08-10T19:53:14.817 に答える
1

私の場合、SPNが欠落していたため、次の2つのコマンドを実行する必要がありました。

setspn -a MSSQLSvc:SERVERNAME SERVERNAME setspn -a MSSQLSvc:SERVERNAME:1433 SERVERNAME

言い換えれば、私の場合、FQDNはすでに正しく含まれていましたが、NETBIOS名だけでなく、これらを追加した後は正常に機能しました。最初はそうではありませんでしたが、2分待った後はそうなりました。

于 2016-08-31T13:21:01.700 に答える
1

このエラーが発生しました。パスワードの有効期限が切れており、パスワードを変更する必要があったために発生しました。一部のプログラムではまだログインでき、すべてが正常に機能するため(Windowsを含む)、気づきませんでしたが、SQLサーバーにログインできませんでした。

于 2017-05-08T07:39:11.840 に答える
1

おそらく、接続文字列でIntegrated Security=SSPIを使用したことがあります。SSPIは、Windows認証を使用した信頼できる接続に使用されます。したがって、Windows認証で正しく機能するには、システムとデータベースサーバーが同じドメインにあり、同じDNSサーバーアドレスを使用しているか、信頼できるドメインにある必要があります。

システムとデータベースサーバーが同じドメインにある場合は、システムのネットワーク接続でIPV4プロパティのDNSサーバーアドレスを確認し、データベースサーバーで使用されているのと同じDNSサーバーを提供します。

于 2018-06-29T13:13:14.783 に答える
1

vb.netで、リンクサーバーを使用している場合は、接続文字列を確認してください。統合セキュリティ=true; すべてのSQLプロバイダーで機能するわけではなく、OleDbプロバイダーで使用すると例外がスローされます。つまり、基本的に統合セキュリティ= SSPI; SQLClientとOleDBの両方で動作するため、推奨されます。それでもエラーが発生する場合は、構文を完全に削除してください。

于 2019-04-04T14:49:03.260 に答える
0

ドメイン(ドメインサーバーであるが、ドメイン管理以外のSQL Serverとは関係のないサーバーマシン)をリセットしてからクライアントマシンをリセットすることで、これを解決できます。

皆様のご支援、誠にありがとうございました!

于 2009-11-29T09:26:17.933 に答える
0

これの本当に奇妙なインスタンスがありました。SQLサーバーのWindowsコンピューター名を含む接続文字列を持つすべてのWeb製品は正常に機能しましたが、内部ドメインが接続されたFQDNを持つ製品はSSPIエラーを発生させました。つまり、COMPUTERNAMEとCOMPUTERNAME.DOMAIN(pingは常に期待どおりに機能しました)

これは、新しいSQLサーバーが使用されていて、hostsファイルが接続文字列のFQDNとしてコンピューター名とコンピューター名の両方を指している場合にのみ問題を引き起こしました。

この場合の解決策は、すべての接続文字列をコンピューター名のみに設定し、ドメイン参照を削除することでした。

SQL:2008R2 SQL2012

IIS:2008R2

于 2014-01-21T11:12:38.200 に答える
0

この問題は、サービスユーザーをDomain1\ServiceUserからDomain2\ServiceUserに変更した場合に発生しました。SPNはDomain1\ServiceUserに登録されたままであり、Domain2\ServiceUserに登録されることはありません。ドメイン2\ServiceUserの下にSPNを登録しましたが、問題は解決しませんでした。次に、Domain1 \ ServiceUserの下のSPNを削除し、問題が解決されました。

于 2019-07-03T14:31:35.607 に答える
0

コンピューターで記述されていないコードを実行している場合、それは仕事仲間が使用しているコンピューターで実行されますが、自分のコンピューターでは実行されない場合は、web.configを確認してください。おそらく、空白にする必要のある場所に、userPrincipalNameという同僚の名前があります。これは、VSでプロジェクトへのサービス参照を作成するときに自動的に行われます。

于 2019-07-10T12:11:51.010 に答える
0

次のコマンドを実行することで解決できます。

管理者モードでCMDを実行する

klist.exe -li 0x3e7 => if you see no output or error then continue and from last command try these commands once again.
klist.exe -li 0x3e7 purge
gpupdate /force
gpresult /r /scope computer
klist purge
runas /user:[your domain here]\[your user name here] cmd.exe
klist.exe sessions | findstr /i [your hostname here in the new opened cmd window]

指定された条件に応じてこれらのコマンドを再試行してから、PCを再起動してください。

于 2022-02-09T13:26:10.747 に答える