2009-07-22 11 views
2

我在/根/ DNN服務器DotNetNuke的門戶網站,我創建在C#中VS2008 asp.net應用程序,我需要上載/根/應用程序。從另一個文件夾引用dotnetnuke.dll在asp.net

當我部署我的應用程序,它需要從/根/ DNN/bin中,而不是/根/應用/ bin中引用dotnetnuke.dll組裝。

我怎麼可以管理,沒有把應用程序文件在/根/ DNN?

我試圖設置自動刷新的路徑,然後上傳後刪除/root/app/bin/dotnetnuke.dll使應用程序試圖引用缺少的組件../dnn/bin/dotnetnuke.dll但「應用程序沒有預編譯」錯誤彈出,所以我試圖上傳它沒有預先編譯,但仍然找不到參考。

回答

2

爲什麼不給你的應用程序自己的副本?這將解決所有的問題...

換句話說,爲什麼跨應用的參考?它違背了IIS和ASP.NET的所有安全機制

+0

因爲自己的副本沒有被門戶網站,所以我不能做一些門戶網站相關的東西與它一樣(新DotNetNuke.Entities.Modules.PortalModuleBase())。用戶ID。 – Ivan 2009-07-22 11:44:55

+1

我希望,即使您獲得工作參考,仍然無法做到這一點,因爲它只是一個圖書館,並將被加載到您的應用程序中。 – 2009-07-22 12:22:39

+0

好,我會寫一個DNN模塊的話,但我試圖讓aspx頁面,並把它放在DNN文件夾和被記錄的用戶,在一個iframe我的aspx頁面得到他的用戶ID – Ivan 2009-07-22 12:28:40

0

畢竟,我不得不上傳門戶文件夾中的.aspx和.aspx.cs文件以及dnn的bin文件夾中的bin文件,從我的網站添加了幾行。配置到dnn的web.config,並通過從代碼編寫數據庫對象,即.xsd,.xss文件,將查詢更改爲數據庫。我還必須在上傳之前將我的App_Code中的代碼複製到我的.cs文件中,因爲C#和VS不能在dnn的App_Code中一起編譯。

+0

有趣的事情與DNN是我通過dnn門戶添加了一個新頁面並將其命名爲Report。然後,我在該頁面上添加了IFrame,並且我在IFrame中加載的文件名爲Report.aspx(來自我的應用程序)。起初,我不明白爲什麼我的頁面不顯示在IFrame中,而是遞歸地顯示自己,直到我注意到相同的名稱..:S – Ivan 2009-07-22 16:43:41

+1

您可以將C#和VB一起放在App_Code文件夾中,您只需要將元素添加到web.config的'codeSubDirectories'元素中,以便使用C#編寫該目錄,以便將其單獨編譯。 – bdukes 2009-07-22 21:33:07

+0

整齊。感謝那些信息,我希望在將來的情況下記住它 – Ivan 2009-07-22 23:52:51

0

我想與你正在嘗試做的最好的辦法是到DotNetNuke.dll在服務器上安裝到GAC。我不相信ASP.NET/IIS會允許訪問當前網站文件夾結構之外的任何程序集。

2

紫螞蟻上面所說的,無論是

  1. 負載DotNetNuke的裝配到GAC(這是麻煩的,因爲它使你不能能夠XCOPY升級DNN後)
  2. 把你的應用程序到DNN應用程序文件夾(聽起來像你所做的)
  3. 將DNN dll複製到您的應用程序文件夾中。 (最常見的解決方案)

你在想什麼是配置文件的<probing privatePath="" />元素。但我認爲它不適用於Web應用程序,並且(根據文檔)僅適用於子文件夾。

<configuration> 
    <runtime> 
     <assemblyBinding> 
     <probing privatePath="bin;bin2\subbin;bin3"/> 
     </assemblyBinding> 
    </runtime> 
</configuration> 
相關問題