今日はとてもうれしいです。プロジェクトがついにオンラインになりました。ただ、オンライン化する前に直面した問題は大変なものでした。 。 。しかし、それはついに解決されました。 。困っている友達に助けを提供したいので、ここで問題を教えてください~~
プロジェクト: DOTNET プロジェクト、C# 開発。主な機能は、COM コンポーネントを介してリモート インターフェイスにアクセスすることです。
動作環境:Windows 2003 Server + IIS6.0 + .Net 1.1
問題: COM コンポーネントとシステムは WINDOWS2000 オペレーティング システムで正常に使用できますが、WIN2003 に移行した後、プログラムがコンポーネントを呼び出すときにプロセスが停止し、サーバーで予期しない状況が発生したことを示すエラーが返されることがあります~
原因分析: まず、コンポーネントが他のオペレーティング システムで渡されたため、COM コンポーネントの登録方法と DOTNET プロジェクトの参照は正しいはずですが、コンポーネントを呼び出すステップでエラーが発生します。 COM コンポーネントの機能は、IP アドレスとポートを渡すことです。リモート インターフェイスにアクセスするには、リモート ネットワーク接続の動作に注意してください。インターネットで同様の問題を検索すると、ほとんどの記事がコンポーネントのアクセス許可に関するものです。コンポーネントも記事に従って設定し、IISアクセスユーザーなどの権限を最大まで与えましたが、結果はまだ動作しません。 。崩壊寸前。 。
解決策: 数日間この問題に悩まされた後、同社は Microsoft カスタマー サポートに連絡し、Microsoft は IIS6.0 のアプリケーション プールのセキュリティ権限をチェックする方法を提供してくれました。確認すると、IIS のアプリケーション プールのプロパティの [ID] タブにデフォルトのセキュリティ アカウント「Network Service」があり、これは NetWork Service です。ネットワーク サービスは Windows Server 2003 の組み込みアカウントです。IIS_WPG グループに属しており、Microsoft Web サイトの記事によると、ネットワーク サービス アカウントには適切な NTFS アクセス許可と必要なユーザー アクセス許可が付与されています。 IIS 6 ワーカー プロセス。ネットワークを識別してアクセスするための十分な権限。しかし、理由はわかりません。ここでの NetWork Service 権限が十分ではないため、リモート インターフェイスにアクセスするためにコンポーネントを呼び出すことができません。解決策は、IIS_WPG アカウントを読み取りと実行、フォルダー ディレクトリの一覧表示、読み取りに設定することです。NETWORK SERVICE にはフル コントロールのアクセス許可が必要です。上記の方法に従って、ネットワーク サービスを管理者グループに割り当てました ^_||、IIS を再起動してプログラムを実行すると、コンポーネントは正常に呼び出されました~~
したがって、友人が COM コンポーネントを呼び出すことができないことに遭遇した場合。再度使用する場合は、プログラム プールのアクセス許可の適用を検討してください~~
次の記事を参照してください: http://www.microsoft.com/china/technet/community/columns/insider/iisi1203.mspx
http://flyskywlh.cnblogs.com /archive/2006/07/07 /445508.html