2012-04-19 85 views
4

我們有一個工業系統,可以使用一些C++ DLL給我們提供接口。我寫了一個.NET包裝器來控制工業系統,然後將這個.NET包裝器捆綁到一個ASP .NET Web應用程序中,以便我們可以通過Web控制系統。如何完全信任地部署IIS ASP .NET應用程序?

當我在Visual Studio中使用ASP .NET Development Server運行/調試時,一切正常。當我部署到本地ISS服務器時,我收到C++ DLL的錯誤信息(我被告知)意味着存在通信故障。

由於IIS應用程序和開發服務器在同一臺計算機上,一個可以工作,另一個不可用,所以我確信這是一個權限/安全性錯誤。我花了好幾天的時間來處理應用程序池標識,ASP .NET模擬,文件系統權限等等,都無濟於事。 (我也是有點IIS的小白,這不利於的。)

所以,這裏的衝壓線:

可能有人請解釋如何(如果可能的話),以建立一個IIS ASP .NET應用程序,以便它可以使用本地計算機的全部(彈出式,槍支熾熱)訪問權限運行?我想確保IIS沒有拿着任何東西

+0

你能分享這個錯誤嗎? – 2012-04-19 01:19:59

+0

是的。 Marshal.GetLastWin32Error()返回2.這對應於'未找到文件',我相信這意味着(基於文件的?)IPC無法啓動。 – wpearse 2012-04-19 01:21:44

回答

6

我不確定是否給予完全信任模式可以解決您的問題,因爲錯誤似乎來自C++,並且文件系統級別的某種權限丟失或文件本身丟失。

在任何情況下,回答你的問題,宥可以使用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 2012-05-02 23:26:36

1

除了在ASP.NET應用程序本身設置完全信任級別之外,請檢查IIS用於匿名訪問您的網站/ Web應用程序的用戶:

Web應用程序 - >屬性 - >目錄安全性 - >編輯(在身份驗證和訪問控制)。

(此路徑是IIS6。)

默認情況下,IIS與分配切下來的權限,這可能會導致您遇到問題的用戶。

+0

謝謝!這裏有一個關於IIS7過程的技術文檔:http://technet.microsoft.com/en-us/library/cc770966(v=ws.10).aspx – wpearse 2012-04-23 20:57:26

相關問題