我正在使用Visual Studio在C#中創建我的第一個ASP.net應用程序,並且我有一個工作的開發版本。創建單獨的生產數據庫後,我使用Windows資源管理器複製整個開發項目文件夾。生產版本中生產文件夾名稱和.sln文件名稱均已更改。將數據庫服務器連接到克隆生產版本
儘管複雜類型和函數導入仍然存在,並且沒有找到任何存儲過程可以導入或更新,但現在生成.edmx
文件的模型瀏覽器在「存儲過程/函數」下不顯示任何內容。這是在Web.config
連接字符串已被指向生產數據庫服務器(包括標識和密碼)之後,並且已通過服務器瀏覽器成功添加並測試了數據連接。還有一個SQLException Login failed for user 'databaseuser'.
,其中databaseuser是Web.config連接字符串中的標識,只要測試生產應用程序。
有誰知道如何將複製的生產項目連接到數據庫服務器?提前謝謝了!
Web.config文件的連接字符串:
<connectionStrings>
<add name="DefaultConnection" providerName="System.Data.SqlClient"
connectionString="Server=[production server];Database=UserDatabase;
User ID=databaseuser;Password=[production password];Trusted_Connection=False;
Connection Timeout=30;" />
<add name="WorkDatabaseEntities" connectionString="metadata=[metadata copied from
working development version];provider=System.Data.SqlClient;
provider connection string="data source=[production server];
initial catalog=WorkDatabase;integrated security=False;user id=databaseuser;
password=[production password];multipleactiveresultsets=True;
application name=EntityFramework"" providerName="System.Data.EntityClient" />
<add name="UserDatabaseEntities" connectionString="metadata=[metadata copied from
working development version];provider=System.Data.SqlClient;provider
connection string="data source=[production server];
initial catalog=UserDatabase;integrated security=False;user id=databaseuser;
password=[production password];connect timeout=30;MultipleActiveResultSets=True;
App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
編輯1
在.edmx
文件現在顯示存儲過程的模型瀏覽器。 「數據庫用戶」在WorkDatabase上具有讀取和寫入權限,但在「安全」下沒有dbo Schema。
編輯2
這裏的一個位的堆棧跟蹤:
[SqlException (0x80131904): Login failed for user 'databaseuser'.]
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +347
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +78
System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +191
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +154
System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +21
System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +141
System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +362
System.Data.SqlClient.SqlConnection.Open() +96
EDIT 3
堆棧跟蹤似乎兩個不同跡線之間的交替。這是什麼意思?
[SqlException (0x80131904): Login failed for user 'databaseuser'.]
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling) +970
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +802
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) +38
System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +682
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +89
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +426
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +78
System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +191
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +154
System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +21
System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +141
System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +362
System.Data.SqlClient.SqlConnection.Open() +96
EDIT 4
服務器被託管在AWS。也許這是AWS特有的東西?
你有禁止從本地機器訪問 – Saravanan
感謝您的答覆生產數據庫的任何數據庫服務器的防火牆規則!我不相信有任何防火牆問題。 – jle
如果克隆的數據庫和項目不會有任何進口..你只需要改變連接字符串以指向生產或開發,你應該是好去..假設它們是克隆 – JamieD77