2013-03-21 80 views
0

我想在子網站中執行文件。父母和子網站都是網絡應用程序。我不想重定向到子站點文件。我試圖使用Server.Execute()執行子文件,但它不起作用。無法通過Server.Execute()執行文件

主要網址是: http://mysite.com/subsite

虛擬路徑中的子網站文件:〜/子網站/ subfile.aspx

當我訪問http://mainsite.com/subsite/subfile.aspx,它工作正常。當我從父網站做

Server.Execute("~/subsite/subfile.aspx") 

,我得到:

Could not load type 'Subsite.SubFile'. 

任何想法我做錯了嗎?

+0

我很確定server.execute不跨越應用程序邊界。可能是錯誤的,但我認爲這不會起作用。 – NotMe 2013-03-21 18:01:06

+0

你可能是對的。有另一種方法嗎?如果沒有,請發表您的評論作爲答案,我會接受。 – 4thSpace 2013-03-21 18:09:07

回答

1

我很肯定server.execute不跨越應用程序邊界。我不是100%確定的;但鑑於錯誤消息,它似乎很可能。

基本上誤差是說,它無法找到(或負載)該Subsite.SubFile類中定義的組件。

我能想到的兩種可能的解決方案。

  1. 將子網站的程序集複製到主站點bin文件夾中。這可能工作,因爲主站點然後可以找到程序集並執行代碼。這裏有明顯的缺點。例如需要將子網站的所有配置信息複製到主站點web.config中。而且,任何名稱相同的程序集都會有問題;當然,每次更新時都需要在主站點上部署子站點...

  2. 而不是做server.execute;使用HttpRequest類對該子站點進行常規http調用,然後解析該響應並將您需要的內容寫回瀏覽器。