問題タブ [win32exception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Process.Start 例外:「ディレクトリ名が無効です」
Process.Start
Windows 2008 テスト環境で作業しているときに、Windows 7 Professional 64 ビット開発マシンで失敗するメソッドの実装があります。
でprocess.Start();
、開発マシンで次の例外が発生します。
私はいくつかのことを試しました:
プロセスに割り当てたユーザー アカウントが、実行可能ファイルがあるパスと %systemroot% の場所に対する完全な権限を持っていることを確認しました。また、ユーザーがローカル セキュリティ ポリシーで「認証後にクライアントを偽装する」権限を持っていることを確認しました。
を明示的に に設定しようと
ProcessStartInfo.WorkingDirectory
しましたCommandDirectory
。これを行うと、実行可能ファイルが起動しますが、説明なしですぐにクラッシュします。個人の資格情報を使用するように、、、およびプロパティを
UserName
削除Password
して、開発マシンでこの関数を作成しました。Domain
しかし、これは展開には実用的ではありません。これにより、問題が資格情報と権限に関連しているように思えます。
誰が私が間違っているのかアドバイスできますか?
asp.net-mvc - ASP.NET MVC データベースが作成/アップロードされていない System.ComponentModel.Win32Exception: 指定されたファイルが見つかりません
背景「個々のユーザー アカウント」オプションを使用して、デフォルトの MVC テンプレートからVisual Studio 2013 Express for Web
を使用して MVC Web サイトを (アプリケーションとして) 作成しました。フィットするビューを作成し、2 つのフィールド (「ユーザー名」と「生年月日」) をアカウント モデルに追加しました (Microsoft のチュートリアルを使用)。注: Visual Studio から localhost で実行すると、すべて正常に動作します。
問題
サイトをサーバーにアップロードすると、ファイルが見つからないというエラーが表示されます (見つからないのはアカウント データベースだと思います)。アップロードすると(ファイルシステムメソッドでこれを行っています)、AppDataフォルダーには何もありませんが、VSにもありません。サーバーエクスプローラーにあります。ライブ サーバーのアカウントで何かをしようとすると (ユーザーの登録など)、次のスタック トレースが表示されます。
スタック トレース
注:ユーザーを登録すると、spiderhouse.orgでこれを確認できます。完全なエラーの詳細を利用できるように残しましたが、現在の状態 (執筆時点) では、情報は保存されません。
アイデンティティモデル
アカウント コントローラー
接続文字列
c# - Win32 エラー コードの大文字のテキスト識別子は何と呼ばれ、エラー コードを指定してプログラムでどのように決定できますか?
Win32 エラー コードのリストでは、各エラーに次の 3 つのコンポーネントがあります。
- 数値エラー コード
- 説明的なメッセージ
- アンダースコアで区切られた大文字の単語で構成される識別子
documentationによると、 「メッセージ識別子」という用語は説明的なメッセージを指しますが、大文字のエラー名の用語が何であるかは言及されておらず、どこにも見つかりませんでした。これらの識別子は、PowerShell ErrorRecord オブジェクトの「エラー ID」と呼ばれるものに類似しているように見えますが、「win32 エラー ID」と「win32 エラー ID」をグーグル検索しても答えが得られませんでした。
たとえば、次のエラーの場合:
ERROR_TOO_MANY_OPEN_FILES
4 (0x4)
システムはファイルを開くことができません。
4
はエラーコードです。The system cannot open the file.
メッセージ識別子です。ERROR_TOO_MANY_OPEN_FILES
それは __________?
また、エラー コードが与えられた場合、このテキスト値はどのように決定できますか? 次のように、特定のエラー コードに関連付けられているメッセージ識別子を簡単に特定できます。
ただし、Win32Exception クラスには、これらの大文字で始まるエラー名に対応するプロパティがないようです (ErrorRecord クラスのErrorIdプロパティに類似)。
一部のリストでは、この種の識別子が「定数」と呼ばれているのを見てきましたが、それらが定数である場合、それらはどこで定義/列挙されており、プログラムからどのようにアクセスしますか?
c# - Win32Exception をキャッチできません
そのため、Entity Framework の "Any" トランザクション中に Win32Exception を受け取りました。db マシンはオフラインなので、当然のことです。これは監視アプリなので、マシンが使用できないことをログに記録したいのですが、エラーをキャッチしていません。
エラーは次のとおりです:(Elmahによって報告されました)
System.ComponentModel.Win32Exception ネットワーク パスが見つかりませんでした
System.Data.SqlClient.SqlException (0x80131904): SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: 名前付きパイプ プロバイダー、エラー: 40 - SQL Server への接続を開けませんでした) ---> System.ComponentModel.Win32Exception (0x80004005): System.Data.SqlClient.SqlInternalConnection.OnError でネットワーク パスが見つかりませんでした ( SqlException 例外、ブール値の breakConnection、Action`1 wrapCloseInAction)
わかりましたので、ここに私の(疑似)コードがあります:
したがって、Win32Exception がキャッチされる必要があることがおわかりいただけると思いますが、そうではありません。Elmah が報告しています。データベースで見つかったエラーは、適切に特定され、報告されています。この Win32Exception が発生するまではすべて機能し、キャッチを無視しているようです。
c# - Win32 例外: OpenProcess の使用中にアクセスが拒否されました
このエラーは、2 つのことをしようとしているときに表示されます。
これを試みている間(コードブロック1):
次に、クラス Proc で起こっていることは
これは私が例外を取得する方法の一部です。私が見る限り、明らかな理由もなく例外なく通過することがあります。
注:Windows 7では決して通過しません。私はWindows 10を使用していますが、機能が機能することがあります
しかし、それが成功した場合、次に Process クラスの外部で OpenProcess() を使用する必要があるときに、ほとんどの場合例外が発生します。その後、再度実行しようとすると、コード ブロック 1 の実行に失敗します。
これ(コードブロック2)でも同じアクセス拒否エラーが発生し、時にはそうではありません...
アクセスフラグ:
インポート:
また、このコードのすべてがエラーなしで実行され、このアプリケーションを再度開かない限り、または対象のアプリケーションを再起動しない限り機能する場合があることにも注意してください。
私がいくつかのことについて明確でない場合は、これについて私を助けてください-これは私の最初の質問であり、これまでに質問する必要はありませんでした...だから、必要なことは後で説明します
wcf - Windows 8.1 wcf 通信共通アルゴリズム例外
すでに 5 年間動作しているソフトウェアで奇妙な問題が発生しました。最近、PC を変更し、現在 Windows 8.1 で開発しています。
問題: 証明書を使用している wcf サービスにバックグラウンドで接続する Web サイトがあります。次に、Web サイトを起動してログオンを試みます。最初に、例外があることがわかりました。
ソケット接続が中止されました。これは、メッセージの処理中にエラーが発生したか、リモート ホストが受信タイムアウトを超過したか、基になるネットワーク リソースの問題が原因である可能性があります。ローカル ソケットのタイムアウトは「00:19:59.9910127」でした
これをすぐに受け取ったので、タイムアウトするまで 20 分待つ必要がなかったため、奇妙なメッセージです。正確に何が起こっているのかを知る必要があったため、Windows 8.1 を搭載した別の PC でこのセットアップを試しました。すべてが完全に機能し、ウェブサイトに問題はありませんでした。次に、接続を交換して再現できるかどうかを確認することにしたので、最終的には次のようになりました。
- 私から大学へ => OK
- Collegae to my => OK
- Collegae 自体に => OK
- 自分自身 => エラー
次に、Windows ログブックで回答を検索しようとしました。システムログブック。tls プロトコルに問題があることがわかりました。 Windows eventid 36888、Windows eventid 36874 次に、これら 2 つのイベント ID が原因で tls に関する問題を検索しましたが、何も見つかりませんでした。
さらに奇妙なのは、同じ wcf サービスを介して接続するマシンにローカルにインストールされたシック クライアントもあり、これも正しく動作することです。シック クライアントと Web サイトは C# で記述されています。
Web クライアント接続の wcf トレースを有効にしました。私はこのファイルを次のリンクで共有しています: wcf-log Microsoft Service Trace Viewer の [Activity] タブ ページで開くと、最後のメッセージにエラーが含まれています。
クライアントとサーバーは共通のアルゴリズムを持っていないため、通信できません