2012-04-19 2 views
4

私たちは、私たちに与えられたいくつかのC++ DLLを使用してインターフェイスできる産業システムを持っています。産業用システムを制御するための.NETラッパーを作成し、この.NETラッパーをASP .NET WebアプリケーションにバンドルしてWeb上でシステムを制御できるようにしました。完全に信頼できるIIS ASP .NETアプリケーションを展開するにはどうすればよいですか?

Visual StudioでASP .NET開発サーバーを使用して/ debugを実行すると、すべて正常に動作します。ローカルのISSサーバーにデプロイすると、(私が言った)C++ DLLからエラーが発生しました。これは通信障害があることを意味します。

IISアプリケーションとDev Serverは同じマシン上にあり、1つは動作し、もう1つは動作しないため、これはパーミッション/セキュリティエラーであると確信しています。私は、アプリケーションプールのアイデンティティ、ASP .NETの偽装、ファイルシステムのアクセス許可などを利用して無駄に時間を費やしました。 (。私も助けないIIS-noobの、のビットだ)

だから、ここパンチラインです:

誰かを設定する(それが可能だ場合)方法について説明してもらえIIS ASP .NETアプリケーションを使用して、ローカルマシンへの完全な(ボールアウト、銃撃的な)アクセスを実行しますか?私は、IISが何かによってアプリケーションを保持していないことを確認したいと思います。

+0

エラーを共有できますか? –

+0

Marshal.GetLastWin32Error()は2を返します。これは 'file not found'に相当します。これは(ファイルベースの)IPCを開始できなかったことを意味します。 – wpearse

答えて

6

エラーがC++から来ているようで、ファイルシステムレベルで何らかのパーミッションが不足しているかファイル自体が見つからないため、完全信頼モードを指定すると問題が解決するかどうかはわかりません。

いずれにせよ、あなたの質問に答えるために、yuoは、あなたのweb.configファイルに次のセクションを追加し、web.configファイルを使用して完全な信頼モードを設定することができます

<system.web> 
<securityPolicy> 
    <trustLevel name="Full" policyFile="internal"/> 
</securityPolicy> 
</system.web> 

詳細はここで見ることができます:http://msdn.microsoft.com/en-us/library/wyts434y.aspx

+0

ありがとうございます。あなたは正しい - それは問題を解決しなかったが、それは質問に答えた: – wpearse

1

ASP.NETアプリケーション自体に完全な信頼レベルを設定するだけでなく、IISがWebサイト/ Webアプリケーションへの匿名アクセスに使用するユーザーを確認してください:

Webアプリケーション - >プロパティ - >ディレクトリセキュリティ - >編集認証とアクセス制御)。

(このパスはIIS6のためである。)

デフォルトでIISは、あなたが経験している問題を引き起こす可能性があり、カットダウンの権限をユーザに割り当てます。

+0

ありがとう!ここにIIS7の手順に関する技術情報があります。http://technet.microsoft.com/en-us/library/cc770966(v=ws.10).aspx – wpearse

関連する問題