簡體   English   中英

發布遠程服務器[Win32Exception(0x80004005)]

[英]Publish remote server [Win32Exception (0x80004005)]

我想知道我的連接字符串是否錯誤,因為當我在服務器上發布它時,它不起作用,否則,當我在調試模式下對其進行測試時,它就會起作用。

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-app-20130122205025;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-app-20130122205025.mdf"
      providerName="System.Data.SqlClient" />
    <add name="SiteSourceContext" connectionString="Data Source=(localdb)\v11.0; Initial Catalog=SiteSourceContext-20130125171153; Integrated Security=True; MultipleActiveResultSets=True; AttachDbFilename=|DataDirectory|SiteSourceContext-20130125171153.mdf"
      providerName="System.Data.SqlClient" />

有人可以幫忙嗎? 我是相對較新的人,正在嘗試學習,所以我不知道我在做什么,但這是我得到的錯誤:

[Win32Exception (0x80004005): The specified file is not found]

[SqlException (0x80131904): A network-related error or instance-specific occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (Provider: SQL Network Interfaces, error: 52 - Could not locate installation of a runtime database locally. Verify that SQL Server Express is installed and the runtime functionality of local database is enabled.) ]
   System.Data.SqlClient.SqlInternalConnection.OnError (SqlException exception, Boolean breakConnection, Action `1 wrapCloseInAction) 6675286
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) 688

驗證是否已安裝SQL Server Express,並且啟用了本地數據庫的運行時功能。

嘗試更改此:

Data Source=(LocalDb)\v11.0

為此:

Data Source=.\v11.0

或這個 :

Data Source=.\SQLExpress

請記住,使用Data Source=(LocalDB)\\v11.0會將憑據限制為創建/擁有數據庫的用戶。 如果將其發布為ASP.NET服務,則代碼將在其他用戶下運行; 可能是網絡服務。

此外,看起來連接字符串正在指定一個文件,該文件可能僅存在於開發環境中,而不存在於要發布到的服務器上。 您需要在該服務器上安裝SQLExpress並設置連接字符串才能訪問該服務器。 我不會使用Data Source=(LocalDB)\\v11.0; ; 相反,我將使用Data Source=localhost\\SQLEXPRESS; Data Source=.\\SQLEXPRESS來保持開發環境和部署之間的一致性。

開發計算機和服務器中安裝的SQL Server的實例名稱可能具有不同的名稱。 因此,您需要更改連接字符串。 如果已安裝SQL Server,則無需安裝。

其他可能性是,SQL Server實例可能未運行。 您可以從控制面板轉到Windows服務,並檢查存儲數據庫的SQL Server服務是否已啟動。 如果您有多個SQL Server實例,則可能有多個服務。 確保將連接字符串用於正確的實例。

另外,如果您決定使用Windows身份驗證,則應在數據庫中為相關的IIS用戶(例如IIS APPPOOL \\ DefaultAppPool)賦予訪問優先級。 或者,您可以使用SQL Server身份驗證。

簡而言之,我認為您在引用SQL Server實例時遇到問題。 解決該問題時,如果不嘗試使用有效的憑據訪問數據庫,則會遇到身份驗證問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM