0

これがWindows 8上にあり、データベースサーバーがリモートではないことを除いて、IISに展開されたときに外部SQLサーバーDBが機能しないWCF / Entity Frameworkと同様の問題があります。同じマシン上にあり、ドメインはありません。スクリプトの最初の部分は機能しますが、ユーザー IIS APPPOOL\ASP.NET 4.0 アカウントはありません。Windows 8 には .NET 4.5 のようなアプリ プールがあり、気に入っているように見えますが、それでも機能しません。私はそれがある種の権限の問題であることを知っています。これが機能するように、スクリプトまたは回答を手伝ってくれる人はいますか? EF で WCF サービスを作成できる必要があります。ありがとう。

最初のトピックから変更したスクリプトを試しました。

USE [master]
GO
CREATE LOGIN [sgentile-hp\sgentile] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
GO
USE [AdventureWorks2012]
GO
CREATE USER [sgentile-hp\sgentile] FOR LOGIN [sgentile-hp\sgentile]
GO
USE [AdventureWorks2012]
GO
EXEC sp_addrolemember N'db_datareader', N'sgentile-hp\sgentile'
GO
USE [AdventureWorks2012]
GO
EXEC sp_addrolemember N'db_datawriter', N'sgentile-hp\sgentile'
GO

それが生み出した:

Msg 15025, Level 16, State 2, Line 1
The server principal 'sgentile-hp\sgentile' already exists.
Msg 15063, Level 16, State 1, Line 1
The login already has an account under a different user name.
Msg 15410, Level 11, State 1, Procedure sp_addrolemember, Line 35
User or role 'sgentile-hp\sgentile' does not exist in this database.
Msg 15410, Level 11, State 1, Procedure sp_addrolemember, Line 35
User or role 'sgentile-hp\sgentile' does not exist in this database.

また、SQL 認証ユーザーを作成し、その名前とパスワードを接続文字列で使用しようとしましたが、まだ機能しません。ユーザーでアプリケーション プールを実行する方法が必要です。

4

2 に答える 2

0

SQL認証ユーザーを追加し、その名前とパスワードをweb.configに入れることで修正しました。エラー ログには、「ユーザー 'Indigo' のログインに失敗しました。理由: アカウントのパスワードを変更する必要があります。」と表示されていました。変えたらすぐ効きました!

于 2013-03-29T16:09:17.970 に答える
0

私は小さなステップを進めます。まず最初に、サーバー ログインの下にログイン[sgentile-hp\sgentile] を見つける必要があります (明確にするために、Management Studio で [セキュリティ]/[ログイン] の下に移動すると、ここにユーザーが表示されます)。見つかった場合、「create login」ステートメントはうまく機能しました。次に、Management Studio オブジェクト エクスプローラーで AdventureWorks2012 データベースの下に移動し、[セキュリティ/ユーザー] の下に移動します。ここで、データベース ユーザー[sgentile-hp\sgentile]を見つける必要があります。それを削除して、ステートメントを実行します。

USE [AdventureWorks2012]
GO
CREATE USER [sgentile-hp\sgentile] FOR LOGIN [sgentile-hp\sgentile]
GO

また。これにより、サーバー ログインがデータベース内の対応するユーザーに正しくマップされます。その後、このユーザーに db_datareader および db_datawriter データベース ロールを割り当てることができます。IIS 側では、Windows ユーザー[sgentile-hp\sgentile] を IIS_IUSRS ローカル グループのメンバーにしてから、このユーザーのコンテキストで開始するように IIS アプリケーション プールを構成します。特定

Integrated Security=SSPI 

サービスの接続文字列: これで、このアプリケーション プールで実行される WCF サービスがデータベースに正しく接続できるようになります。

お役に立てれば

于 2013-03-29T16:26:41.607 に答える