2009-06-09 86 views
0

我没有从asp.net论坛得到任何回复,所以我想我会在这里尝试。运行aspnet_regsql时幕后会发生什么?

我遇到了一个客户的问题,他们在登录我们的应用程序时遇到了麻烦,他们正在托管。它在第一天安装我们的应用程序后的第一天左右工作正常,但随后第二天(2009年5月29日)验证中断。然后他们说它在星期一开始工作,但只有几个小时。没有配置更改或他们知道的数据库更改。

我们可以通过运行带有下面参数的aspnet_regsql命令来解决这个问题。我们已经验证所有的“aspnet_”表和存储过程都在数据库中。我的问题是,与我们的应用程序断开连接,数据库的身份验证失败,但在运行此脚本之后已修复此问题?该命令不会覆盖任何“aspnet_”表,因为所有现有用户仍在数据库中,并且他们能够再次使用相同的现有凭证登录。

aspnet_regsql -E -S <SERVERNAME> -d <DATABASENAME> -A all 

我们的应用程序的一点背景。这是一个.NET 3.5 SP1 ASP.NET应用程序,使用成员资格提供程序进行身份验证。我已经在我们的数据库中安装了会员功能(我现在很后悔)。该应用程序对ADO.NET连接和成员资格连接都使用SQL Server登录。此当前设置将登录权限设置为此数据库的db_owner。

下面的条目正在进入Windows事件日志。

Event Type: Information 
Event Source: ASP.NET 2.0.50727.0 
Event Category: Web Event 
Event ID: 1315 
Date: 5/29/2009 
Time: 10:52:04 AM 
User: N/A 
Computer: * * * * * * 
Description: 
Event code: 4005 
Event message: Forms authentication failed for the request. Reason: 
The ticket supplied has expired. 
Event time: 5/29/2009 10:52:04 AM 
Event time (UTC): 5/29/2009 2:52:04 PM 
Event ID: 5ca57075c5464bdfbee4dbaa1365f8d9 
Event sequence: 2 
Event occurrence: 1 
Event detail code: 50202 

Application information: 
    Application domain: 
/LM/W3SVC/1/Root/5500Client-1-128880823233521436 
    Trust level: Full 
    Application Virtual Path: /5500Client 
    Application Path: D:\www\5500Client\ 
    Machine name: * * * * * * 

回答

0

这似乎是使用内置Windows凭据连接到SQL Server的问题。您的客户可以使用例如sa帐户或具有足够权限创建数据库和表的其他SQL Server帐户?

aspnet_regsql -S <SERVERNAME> -d <DATABASENAME> -A all -U (login id) -P (password) 

马克

+0

啊,所以你的意思是,表中得到一个不同的架构,Windows用户帐户,而不是DBO帐户下创建的。 – 2009-06-10 13:01:49

相关问题