0

SQL/Windows 2012のサードパーティ専用サーバーにローカルサーバーに接続するローカルPCからサービスを移動しようとしています。WIndows 2012でWindowsサービスを実行するユーザーアカウント

私は自分の頭の中で爪を叩くようになっていて、ルートになってコンピュータにログインしてサービスコントロールを開き、実行するためのローカルシステムアカウントの権限(および能力デスクトップとのインターフェイスに - 私はそれが接続するサードパーティ製のAPIに関する情報を私に与える停止/開始Winフォームがあります) - それは動作します。

localhostデータベースへの接続を試みるときを除いて、それは実行されますが、次の例外を除いて爆発する必要があります。SQL Serverへの接続の確立中にネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからなかったか、アクセスできませんでした。インスタンス名が正しいこと、およびSQL Serverがリモート接続を許可するように構成されていることを確認します。 (プロバイダー:名前付きパイププロバイダー、エラー:40 - SQL Serverへの接続を開くことができませんでした)。

.NETプログラムを実行すると、マシン(ドライブ、ユーザー、ログオン時間、localhostで電子メールを送信する機能、外部のHTTP要求からサーバーIPを取得する機能など)ローカルホストのSQL Serverに接続し、私のサービスと同じ接続文字列(DB、User、PSW)を使用すると、sysビューと照合の違いでSQLユーザーに関する情報を接続および抽出できます。

これは、rootとしてボックスにログインしたときにコマンドプロンプトで実行するコンソールアプリケーションですが、他のほとんどのアプリケーションと同じようにコマンドプロンプトを管理者として開く必要はありません。同じSQL DB。

"既存のアカウント"を使用するようにサービスを変更するか、rootユーザー/ pswをボックスに入れてサービスを試しても、 "Windowsは起動できませんでした。 xxサービスをローカルコンピュータ上で "とイベントビューアでは、それは何らかの理由(アクセス許可 - なぜそれがrootであったのか)ができないように見える未処理の.NET例外です。それ。

アプリケーション:BrainiacV2.exeフレームワークバージョン:v4.0.30319説明:処理されなかった例外が原因でプロセスが終了しました。例外情報:System.Diagnostics.EventLogInternal.WriteEntry(System.String、System.Diagnostics.EventLogEntryType、Int32、Int16、Byte [])System.Diagnostics.EventLog.WriteEntry(System.String、System.Diagnostics)のSystem.Diagnostics.EventLogInternal.WriteEntryでのSystem.ArgumentException。これらのエラーは、Win7 PCとリモートDBサーバーではなく、Windows 2012/SQLサーバーの組み合わせで発生します。

私はこの記事を読んだだけでなく、ローカルユーザーアカウントが実行するのに十分であると述べた他の多くの人も読んでいました。

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);

これは、Named PipesプロバイダがSQL Server上で構成されておらず、使用しようとしていることを意味します。これを構成するか、SQL Serverで実際に構成されているプロバイダに接続を切り替えることができます。指定した名前を使用してサーバーにアクセスできない可能性もあります。指定した名前でpingを実行できますか?

最後のメッセージは、トップレベルのtry/catchブロックがないことを示します。つまり、エラーは致命的です。特にサービスでは、それらを捕まえて処理する必要があります。

あなたの質問をより理解しやすくすることができ、正確な問題を絞り込むことができれば、おそらくあなたにもっと助けを与えることができます。

+0

管理者は私のメインユーザーログインとしてrootを指定しました。私が知っているすべてのエラーは、致命的なニュースではありません。 MaybのWin7からWin2012へのコピー。それは私のボックスのローカルアカウントで実行され、SQLと外部の世界にアクセスすることができます。 Desktrayに座ってServciceに接続できるWin APPフォームを簡単に作成できます。サードパーティのAPIが稼働しているので、便利なデスクアプリケーションなので、私はそれを停止/開始してくれます。だから私のPC上でそのフォーマットでうまく動作し、OVHに接続するだけで問題になります。そして今は、フランスのIP(フランス語IPS)が第三者APIによってブロックされていると思います。私はpingできますが、 – MonkeyMagix

関連する問題