0

私は arduino (一部のマイクロコントローラー) を使用しており、それと通信するための ASP.net ページを作成しました。arduinoをシリアルポートCOM4に接続しました。ASP.net Web サイトを実行すると、次のエラーが表示されます。

例外の詳細: System.UnauthorizedAccessException: ポート 'COM4' へのアクセスが拒否されました。

ASP.NET は、要求されたリソースへのアクセスを許可されていません。リソースへのアクセス権を ASP.NET 要求 ID に付与することを検討してください。ASP.NET には、アプリケーションが偽装されていない場合に使用されるベース プロセス ID (通常、IIS 5 または IIS 6 および IIS 7 のネットワーク サービスの {MACHINE}\ASPNET、および IIS 7.5 の構成済みアプリケーション プール ID) があります。アプリケーションが を介して偽装している場合、ID は匿名ユーザー (通常は IUSR_MACHINENAME) または認証された要求ユーザーになります。

ファイルへの ASP.NET アクセスを許可するには、エクスプローラーでファイルを右クリックし、[プロパティ] を選択して、[セキュリティ] タブを選択します。[追加] をクリックして、適切なユーザーまたはグループを追加します。ASP.NET アカウントを強調表示し、必要なアクセスのボックスをオンにします。

解決策がすぐそこにあるように聞こえるかもしれませんが、「asp.netへのアクセスを許可する...」しかし、彼らが話しているファイルはわかりません! 誰でも解決策を指摘できますか?PS: 私は最初に Windows フォーム アプリケーションを作成しましたが、うまくいきました。したがって、COM4 を使用するものは他にありません。

前もって感謝します。

4

1 に答える 1

0

Web アプリケーションがサーバー上の COM ポートと通信する必要があるのは奇妙なことですが、問題は次のとおりです。既定では、IIS の ASP.NET アプリケーションは権限の低いユーザーで実行されます (エラー メッセージで指定されているとおり)。そのユーザーはポートへのアクセスを許可されていません。
コンソール アプリケーションは、それを起動したユーザーの下で実行されます。それがあなたであり、あなたがマシンの管理者であると仮定しています。

ASP.NET で同じオープン IIS (開始 - 実行 - inetmgr) を実行するには、[アプリケーション プール] を選択し、Web アプリケーションが実行されているアプリ プールを選択し、[詳細設定] をクリックして、[ID] フィールドを次のように設定します。あなたのユーザー。アプリ プールを再起動し、Web アプリケーションを起動します。

于 2013-01-07T05:25:53.603 に答える