0

我試圖擺脫我的本地PC,在公司連接到本地服務器到第三方專用服務器SQL/Windows的2012年哪個用戶帳戶應在Windows上的Windows服務運行2012

服務

這就像敲我的腦袋裏的釘子一樣遠,現在服務運行,如果我作爲根登錄到計算機,並打開服務控制,並給它「本地系統帳戶」權限運行(和能力與桌面接口 - 我有一個停止/啓動Win Form,它提供了我連接到的第三方API的信息) - 它運行。

這就是它運行,除非它嘗試連接到它需要的本地主機數據庫,它會彈出一個例外:與建立到SQL Server的連接時發生網絡相關或實例特定的錯誤。服務器未找到或無法訪問。驗證實例名稱是否正確,並將SQL Server配置爲允許遠程連接。 (提供程序:命名管道提供程序,錯誤:40 - 無法打開與SQL Server的連接);

但是,如果我運行一個.NET程序,我寫了一個給我的關於計算機的詳細信息(例如驅動器,用戶和登錄時間,使用本地主機發送電子郵件的能力,從外部HTTP請求獲取服務器IP)和連接到本地主機SQL Server並使用與我的服務相同的連接字符串(數據庫,用戶,PSW),然後它可以在sys視圖和歸類差異中連接和提取有關SQL用戶的信息。

這是一個控制檯應用程序,我在命令提示符下運行,因爲當我以root用戶身份登錄到該框時,我不必像管理員那樣打開命令提示符,因爲大多數其他應用程序都需要獲取這些詳細信息並連接到相同的SQL DB。

如果我只是嘗試改變服務使用「現有帳戶」或輸入在根用戶/ psw到框中,並嘗試服務甚至沒有得到儘可能開始與「Windows無法啓動在本地計算機上的xx服務「,並在事件查看器中,它只是一個未處理的.NET異常,似乎不能出於某種原因(權限 - 爲什麼當它是根?)錯誤記錄到我創建的事件日誌它。

應用程序:BrainiacV2.exe Framework版本:v4.0.30319說明:由於未處理的異常,進程終止。異常信息:System.Diagnostics.EventLogInternal.WriteEntry(System.String,System.Diagnostics.EventLogEntryType,Int32,Int16,Byte [])System.Diagnostics.EventLog.WriteEntry(System.String,System.Diagnostics。 EventLogEntryType)在BrainiacV2.BrainiacJobs.WriteToEventLog(System.Exception,System.String)

這些錯誤只發生在組合的Windows 2012/SQL服務器上,而不是我的Win7 PC和遠程數據庫服務器上。

我讀過這篇文章以及其他許多人說,本地用戶帳戶應該足以讓它運行。

what Windows account should a service run under to access network sql servers

在調試這個時候所有的核心代碼是一個DLL服務用途,將不勝感激內的任何建議。

回答

0

你的問題很難遵循,但我會嘗試。

除非有人使用該名稱創建帳戶,否則Windows上沒有「根」。

I have a stop/start Win Form

您不能在Windows服務中擁有表單。它沒有桌面,也不允許。

and give it "local system account" privileges to run . . . I have a stop/start Win Form that gives me info on the 3rd party API it connects to)- it runs.

LocalSystem帳戶被限制在正在運行的計算機上。它沒有網絡權限。如果你的數據庫在另一臺機器上,你將無法連接到它。解決方案是讓該服務以具有正確權限的用戶身份運行。

(and ability to interface with desktop -

這在Windows的後續版本中不起作用,甚至當它工作時也是不可靠和不可預測的。

provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server);

這意味着命名管道提供程序未在SQL Server上配置,並且您正在嘗試使用它。您可以配置它,或者將連接切換到實際在SQL Server中配置的提供程序。使用您指定的名稱無法訪問服務器也是可能的。你可以用你指定的名字來ping它嗎?

最後一條消息表明您沒有頂級try/catch塊,這意味着錯誤是致命的。你需要抓住並處理它們,特別是在服務中。

如果你可以讓你的問題更容易理解並縮小你遇到的確切問題,我可以給你更多的幫助。

+0

管理員給了我root作爲我的主要用戶登錄。我所知道的所有錯誤都不是致命的消息,不需要完整的跟蹤來解決。 Mayb將其從Win7複製到Win2012。它運行在我的盒子本地帳戶上,可以訪問SQL和外部世界。您可以輕鬆製作坐在desktray中的Win APP表單,並且可以掛接到Servcice。它可以讓我停止/開始並告訴我第三方API是否啓動並運行,因此它有用的桌面應用程序。因此,在我的電腦上以這種格式正常工作,只是將它傳遞給OVH是個問題 - 現在我認爲它的法語IP(法語IPS)被第三方API阻止。我可以ping通, – MonkeyMagix

相關問題